2017-03-11 1 views
-3

J'essaie de créer un jeu dans lequel vous devez vous connecter avec certaines informations d'identification, après quoi l'utilisateur a le choix entre 2 jeux. Je suis capable de coder les jeux mais je suis bloqué à faire l'entrée pour le choix entre les jeux. Toute aide est appréciée! (C'est la toute dernière ligne qui semble ne pas fonctionner, je ne sais pas pourquoi).Création de plusieurs choix pour l'utilisateur

import java.io.*; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Random; 

public class SkillsDemo3 { 
    boolean again = true; 
    int action; 

    public static void main(String[] args) throws IOException { 

     //*************************** 
     //Login 
     //*************************** 

     class User { 
      User (String username, String password) { 
       this.username = username; 
       this.password = password; 
      } 

      String GetUsername() { return username; } 
      String GetPassword() { return password; } 

      private String username; 
      private String password; 
     }  

     String greeting = "Hello"; 
     String username; 
     String password; 

     // Used to hold the instance of a user who successfully logged in 
     User loggedInUser = null; 

     // Create an empty list to hold users 
     List<User> listOfUsers = new ArrayList<>(); 

     // Add 3 users to the list 
     listOfUsers.add(new User("Gerry","spintown")); 
     listOfUsers.add(new User("Evelyn","poker")); 
     listOfUsers.add(new User("Joan","bonus")); 

     BufferedReader br = new BufferedReader(
      new InputStreamReader(System.in)); 

     System.out.println("*** Welcome to the program ***\n"); 
     System.out.println(greeting); 

     System.out.println("Please type your username :"); 
     username = br.readLine(); 
     System.out.println("Please type your password :"); 
     password = br.readLine(); 

     for (User user : listOfUsers) { 
      if (user.GetUsername().equals(username)) { 
       if (user.GetPassword().equals(password)) { 
        loggedInUser = user; 

        // when a user is found, "break" stops iterating through the list 
        break; 
       } 
      } 
     } 

     // if loggedInUser was changed from null, it was successful 
     if (loggedInUser != null) { 
      System.out.println("User successfully logged in: "+loggedInUser.GetUsername()); 
     } else { 
      System.out.println("Invalid username/password combination"); 
     } 

     //********************************** 
     //Choice of Games 
     //********************************** 

     boolean again = true; 
     int action = 0;  

     if (action == 1) { 
      System.out.println("\nYou have chosen to play Rock, Paper, Scissors"); 
     } else if (action == 2) { 
      System.out.println("\nYou have chosen to Play pick up sticks"); 
      again = false; 
     } 

     SkillsDemo3 what = new SkillsDemo3(); 

     while (what.again) { 
      System.out.println("Please type 0 to continue or 1 to stop :"); 
      what.action = Integer.parseInt(br.readLine()); 
      System.out.println("You typed : "+what.action); 
      what.SkillsDemo3(); 
     } 
    }  
} 
+0

Votre classe n'est pas seulement formatée de façon illisible, mais elle est mal structurée (par exemple, vous déclarez la classe User dans une méthode). Lisez les types et les expressions Java et la syntaxe ici et vous ne devriez avoir aucun problème pour que cela fonctionne: https://www.tutorialspoint.com/java/java_basic_syntax.htm –

+0

Qu'est-ce que vous essayez d'accomplir sur la dernière ligne? En l'état, vous appelez une méthode non-existante SkillsDemo3() de l'objet SkillsDemo3 quoi. – Jonatan

Répondre

0

Vous n'avez pas besoin d'un objet de votre classe SkillsDemo3 Assurez les variables action et againstatic et obtenir votre droit de workflow. J'ai essayé de mettre en place un workflow mais je ne sais pas si cela vous convient.

public class SkillsDemo3 { 
    private static boolean again = true; 
    private static int action; 


    public static void main(String[] args) throws IOException { 

     //*************************** 
     //Login 
     //*************************** 

     class User { 
      User (String username, String password) 
      { 
       this.username = username; 
       this.password = password; 
      } 

      String GetUsername() {return username;} 
      String GetPassword() {return password;} 

      private String username; 
      private String password; 
     } 


     String greeting = "Hello"; 
     String username; 
     String password; 

     // Used to hold the instance of a user who successfully logged in 
     User loggedInUser = null; 

     // Create an empty list to hold users 
     List<User> listOfUsers = new ArrayList<>(); 

     // Add 3 users to the list 
     listOfUsers.add(new User("Gerry","spintown")); 
     listOfUsers.add(new User("Evelyn","poker")); 
     listOfUsers.add(new User("Joan","bonus")); 


     BufferedReader br = new BufferedReader(
       new InputStreamReader(System.in)); 


     System.out.println("*** Welcome to the program ***\n"); 
     System.out.println(greeting); 

     System.out.println("Please type your username :"); 
     username = br.readLine(); 
     System.out.println("Please type your password :"); 
     password = br.readLine(); 

     for (User user : listOfUsers) 
     { 
      if (user.GetUsername().equals(username)) 
      { 
       if (user.GetPassword().equals(password)) 
       { 
        loggedInUser = user; 
        // when a user is found, "break" stops iterating through the list 
        break; 
       } 
      } 
     } 

     // if loggedInUser was changed from null, it was successful 
     if (loggedInUser != null) 
     { 
      System.out.println("User successfully logged in: "+loggedInUser.GetUsername()); 
     } 
     else 
     { 
      System.out.println("Invalid username/password combination"); 
     } 

     //********************************** 
     //Choice of Games 
     //********************************** 
     again = true; 
     action = 0; 

     while (again) 
     { 
      System.out.println("Please type 1 for Rock, Paper, Scissors or 2 for Play pick up sticks:"); 
      action = Integer.parseInt(br.readLine()); 
      if (action == 1) 
      { 
       System.out.println("\nYou have chosen to play Rock, Paper, Scissors"); 
      } 
      else if (action == 2) 
      { 
       System.out.println("\nYou have chosen to Play pick up sticks"); 
       again = false; 
      } 
      System.out.println("Please type 0 to continue or 1 to stop :"); 
      action = Integer.parseInt(br.readLine()); 
      again = action == 0; 
      System.out.println("You typed : "+action); 
     } 
    } 
} 
+0

merci pour votre aide, il efface vraiment les choses, je ne sais pas pourquoi je l'ai tellement compliqué –