双人猪游戏问题

时间:2015-09-10 20:24:08

标签: java

所以我在计算机科学2课程中的任务是做一个双人猪游戏。我相信我已经弄明白了,但由于某些原因,我得到某种语义错误。播放器1的代码工作得很好,但是当涉及到播放器2时,它甚至在我告诉它返回播放器1时也不会退出。如果你能指出我正确的方向,我会非常感激它!

public static void main(String[] args) {
    int player1TurnScore = 0;
    int player1TotalScore = 0;
    int player2TurnScore = 0;
    int player2TotalScore = 0;
    int dice;
    int dice2;
    String input = "r";
    char repeat;

    Scanner keyboard = new Scanner(System.in);
    Random diceRoll = new Random();

    System.out.println("Welcome to the game of Pig!\n");

    while(player1TotalScore < 100 || player2TotalScore < 100){
        // human's turn
        do{
            dice = diceRoll.nextInt(6) + 1;
            System.out.println("You rolled a " + dice);

            if(dice == 1){
                player1TurnScore = 0;
                System.out.println("You lose your turn!");
                System.out.println("Your total score is " + player1TotalScore);
                break;
            }else{
                player1TurnScore += dice;
                System.out.println("Your turn score is " + player1TurnScore);
                System.out.println("And your total score is " + player1TotalScore);
                System.out.println("If you hold, " + player1TurnScore + " points will be added to your total score.");
                System.out.println("Enter 'r' to roll again, or 'h' to hold.");
                input = keyboard.nextLine();
                repeat = input.charAt(0);

                if(repeat == 'h'){
                    break;
                }
            }
        }while(input.equalsIgnoreCase("r") || dice != 1);

        player1TotalScore += player1TurnScore;
        System.out.println("Your score is " + player1TotalScore);
        player1TurnScore = 0;

        if(player1TotalScore >= 100){
            System.out.println("Your total score is " + player1TotalScore);
            System.out.println("PLAYER 1 WINS!");
            break;
        }

        // Player 2's turn
        System.out.println();
        System.out.println("It is Player 2's turn.");
        do{
            dice2 = diceRoll.nextInt(6) + 1;
            System.out.println("You rolled a " + dice2);

            if(dice2 == 1){
                player2TurnScore = 0;
                System.out.println("You lose your turn!");
                System.out.println("Your total score is " + player2TotalScore);
                break;
            }else{
                player2TurnScore += dice2;
                System.out.println("Your turn score is " + player2TurnScore);
                System.out.println("And your total score is " + player2TotalScore);
                System.out.println("If you hold, " + player2TurnScore + " points will be added to your total score.");
                System.out.println("Enter 'r' to roll again, or 'h' to hold.");
                input = keyboard.nextLine();
                repeat = input.charAt(0);

                if(repeat == 'h'){
                    break;
                }
            }
        }while(input.equalsIgnoreCase("r") || dice2 != 1);

        player2TotalScore += player2TurnScore;
        System.out.println("Your score is " + player2TotalScore);
        player2TurnScore = 0;

        if(player2TotalScore >= 100){
            System.out.println("Your total score is " + player2TotalScore);
            System.out.println("PLAYER 2 WINS!");
            break;
        }
    }

我希望我做了缩进,因为这是我的第一篇文章。如果有问题,请告诉我!

1 个答案:

答案 0 :(得分:0)

替换:

}while(input.equalsIgnoreCase("r") || dice != 1);

只是

} while(dice != 1);