2015-11-09 3 views
-4

Итак, моя игра - это в основном последний игрок, который выбирает токен из сумки, но я не знаю, как я должен это делать. В основном мой код:Как бы проверить, выиграл ли игрок 1 или игрок 2?

if (player1Turn = (player1Turn)?false:true){ 
    System.out.print("Player 2 - choose bag: "); 
    while (!in.hasNextInt()){ 
     System.out.println("I said a bag between 1 and 3: "); 
     in.nextLine(); 
    } 
} 
bag = in.nextInt(); 

Затем он проверяет, какую сумку они выбирают, и сколько жетонов они вынимают.
Я не уверен, что использовать, чтобы проверить, какой игрок выиграл.

+1

Ваш код довольно запутанный (особенно часть, в которой вы * задаете значение * в блоке условий оператора 'if'). Но в целом вы будете отслеживать состояние игры в некоторых переменных или объекте или в каком-либо виде, и если вы хотите проверить, закончилась ли игра, вы должны изучить эти переменные или этот объект (в выражении 'if') и увидеть если условие выполнено. Однако не совсем понятно, что вы отслеживаете в этой программе. – David

+0

Не могли бы вы объяснить игру лучше .. Я довольно смущен –

+0

Я пытаюсь отследить количество ходов между обоими игроками, а затем посмотреть, кто из них последний раз видел, кто победит – Rhydz97

ответ

0

Я думаю, что у вас ограниченное количество жетонов в сумке. Итак, как только мешок пуст, вы знаете, что кто-то победил. Ознакомьтесь с приведенным ниже кодом.

import java.util.Scanner; 

public class Main { 
    public static void main(String[] args) { 
     System.out.println("Game started"); 

     int tokenCount = 10; 
     int bag = -1; 
     boolean player1Turn = true; 
     String player1 = "Player 1"; 
     String player2 = "Player 2"; 

     Scanner in = new Scanner(System.in); 
     try { 
      while (true) { 
       String currentPlayer = ((player1Turn) ? player1 : player2); 
       System.out.print(currentPlayer +" - choose bag: "); 

       while (true) { 
        while (!in.hasNextInt()) { 
         System.out.println("I said a bag between 1 and 3: "); 
         in.nextLine(); 
        } 
        bag = in.nextInt(); 
        if (bag >= 0 && bag <= 3) { 
         break; 
        } 
        System.out.println("I said a bag between 1 and 3: "); 
       } 

       tokenCount -= bag; 
       if (tokenCount <= 0) { 
        System.out.println(currentPlayer + " has won"); 
        break; 
       } 

       player1Turn = !player1Turn; 
      } 
     } finally { 
      if(in != null) { 
       in.close(); 
      } 
     } 
    } 
} 
Смежные вопросы