2017-12-10 16 views
-1

2人がプレイするnimのゲームを開発しています。問題は、1回の反復の後、それは彼のturn.Player 1ではないにもかかわらず、player2に切り替え続けます.Player 1は、ゲームが終了するまで完全に無視されます。ここに私のコードです:プレイヤー1はNimのゲームで彼の番を得ません

int A = 3; 
    int B = 4; 
    int C = 5; 

    Scanner input = new Scanner(System.in); 
    Scanner x = new Scanner(System.in); 

    System.out.println("Player 1 name :"); 
    String player1 = input.nextLine(); 

    System.out.println("Player 2 name :"); 
    String player2 = input.nextLine(); 

    System.out.println(" A: " + A + " B: " + B + " C: " + C); 

    do { 

     System.out.println(player1 + " choose a pile : "); 

     String choose = input.nextLine(); 

     if (choose.equals("A")) { 
      System.out.println("How many to remove from pile A:"); 

      int br = input.nextInt(); 

      if (br == 1) { 
       A = A - 1; 
      } 
      if (br == 2) { 
       A = A - 2; 
      } else { 
       A = A - 3; 
      } 
     } 
     Used same if statements for B & C then repeated all and just switched player. 

     System.out.println(" A: " + A + " B: " + B + " C: " + C); 

     System.out.println(player2 + " choose a pile:"); 

     String choose2 = x.nextLine(); 

     if (choose2.equals("A")) { 
      System.out.println("How many to remove from pile A:"); 

      int br = input.nextInt(); 

      if (br == 1) { 
       A = A - 1; 
      } 
      if (br == 2) { 
       A = A - 2; 
      } else { 
       A = A - 3; 
      } 
     } 
     System.out.println(" A: " + A + " B: " + B + " C: " + C); 
    } while (A != 0 || B != 0 || C != 0); 

答えて

0

あなた、あなたがalredy使用されているのと同じスキャナを使用しているため、このエラーが起こっている1

を選択した場合洙だけで、あなたの他の状態になりますので、間違っている場合最初の反復が機能します。 、

Scanner sc2 = new Scanner(System.in); 
String choose2 = sc2.nextLine(); 
+0

のTy:

Scanner sc = new Scanner(System.in); String choose = sc.nextLine(); 

2つ目のために:この問題を解決するための

一つの方法は、一方で、あなたのドゥ内でこのような反復ごと

何かスキャナinitializateですこのため。私はそれが何か簡単だったことを知っていた:)。私はまだゲームの勝者を宣言する必要があります。 if文でそれをやりたいのですが、idkでどのように状態を表現するのか。 – AtomicUniverse

+0

そして、優勝選手の条件は何ですか? –

関連する問題