Оператор for while не повторяется - PullRequest
0 голосов
/ 30 августа 2018

Я был на этом коде почти весь день, и я не могу понять, какая фигурная скобка ({) отсутствует или код для повторения процесса не помещен правильно. Заранее спасибо за помощь. Я чувствую себя неудачником, когда я работаю с классами и методами, и я даже не могу понять мою проблему с { скобкой.

import java.util.Scanner;

public class ChoHan {

    public static void main(String[] args) {



        final int MAX_ROUNDS = 5 ;
        String player1Name ;
        String player2Name ;

        Scanner keyboard = new Scanner(System.in);
        do

        {
        System.out.println(" Enter the first player name :");
        player1Name = keyboard.nextLine();
        System.out.println("Enter the second player name :");
        player2Name = keyboard.nextLine();

        System.out.println(" Would you like to play again ?");
        System.out.println(" Enter y for yes or n for no ");
        String input = keyboard.nextLine();
        char repeat = input.charAt(0);

        while (repeat == 'Y' || repeat == 'y');


        Dealer dealer = new Dealer();

        Player player1 = new Player(player1Name);
        Player player2 = new Player(player2Name);

        for(int round = 0; round <MAX_ROUNDS; round++)
        {
            System.out.println("-----------------------");
            System.out.printf(" Now playing round %d.\n",round + 1);

            dealer.RollDice();

            player1.makeGuess();
            player2.makeGuess();

            roundResult(dealer,player1,player2);
        }

            displayGrandWinner(player1,player2);



       public static void roundResult(Dealer dealer, Player player1, Player player2)
       {
           System.out.printf(" The dealer roll %d and %d.\n", dealer.getDie1Value(),
                   dealer.getDie2Value());
           System.out.printf("Results : %s\n", dealer.getchorOrHan());

           checkGuess(player1, dealer);
           checkGuess(player2, dealer);
       }

       public static void checkGuess(Player player, Dealer dealer)
       {
           final int POINTS_TO_ADD = 1 ;
           String guess = player.getGuess();
           String choHanResult = dealer.getchorOrHan();

           System.out.printf("The Player %s guessed %s.\n", player.getName(),
                player.getGuess());

           if( guess.equalsIgnoreCase(choHanResult))
           {
               player.addPoints(POINTS_TO_ADD);
               System.out.printf("Awarding %d points(s)to %s\n", POINTS_TO_ADD,
                player.getName());
           }
       } 
        public static void displayGrandWinner(Player player1, Player player2) 
        {


            System.out.println("--------------------------");
            System.out.println(" Game over !. Here are the results:");
            System.out.printf("%s : %d points.\n", player1.getName(), player1.getPoints());
            System.out.printf("%s : %d points.\n", player2.getName(), player2.getPoints());

            if(player1.getPoints() > player2.getPoints())
                System.out.println(player1.getName() + " is the Grand Winner!");
            else if(player2.getPoints() > player1.getPoints())
                System.out.println(player2.getName() + " is the Grand Winner!");
            else
                System.out.println(" Both players are tied!");


        }
        }      

1 Ответ

0 голосов
/ 30 августа 2018

Можешь попробовать? Я добавил к логическому решению код. Я изменил только начальные и конечные строки свойств игры.

public class ChoHan {

public static void main(String[] args) {

    final int MAX_ROUNDS = 5;
    String player1Name;
    String player2Name;

    Scanner keyboard = new Scanner(System.in);

    char repeat;
    do
    {
        System.out.println(" Enter the first player name :");
        player1Name = keyboard.nextLine();
        System.out.println("Enter the second player name :");
        player2Name = keyboard.nextLine();

        Dealer dealer = new Dealer();

        Player player1 = new Player(player1Name);
        Player player2 = new Player(player2Name);

        for (int round = 0; round < MAX_ROUNDS; round++) {
            System.out.println("-----------------------");
            System.out.printf(" Now playing round %d.\n", round + 1);

            dealer.RollDice();

            player1.makeGuess();
            player2.makeGuess();

            roundResult(dealer, player1, player2);
        }

        displayGrandWinner(player1, player2);

        System.out.println(" Would you like to play again ?");
        System.out.println(" Enter y for yes or n for no ");
        String input = keyboard.nextLine();
        repeat = input.charAt(0);
    } while (repeat == 'Y' || repeat == 'y');

}

public static void roundResult(Dealer dealer, Player player1, Player player2) {
    System.out.printf(" The dealer roll %d and %d.\n", dealer.getDie1Value(),
            dealer.getDie2Value());
    System.out.printf("Results : %s\n", dealer.getchorOrHan());

    checkGuess(player1, dealer);
    checkGuess(player2, dealer);
}

public static void checkGuess(Player player, Dealer dealer) {
    final int POINTS_TO_ADD = 1;
    String guess = player.getGuess();
    String choHanResult = dealer.getchorOrHan();

    System.out.printf("The Player %s guessed %s.\n", player.getName(),
            player.getGuess());

    if (guess.equalsIgnoreCase(choHanResult)) {
        player.addPoints(POINTS_TO_ADD);
        System.out.printf("Awarding %d points(s)to %s\n", POINTS_TO_ADD,
                player.getName());
    }
}

public static void displayGrandWinner(Player player1, Player player2) {


    System.out.println("--------------------------");
    System.out.println(" Game over !. Here are the results:");
    System.out.printf("%s : %d points.\n", player1.getName(), player1.getPoints());
    System.out.printf("%s : %d points.\n", player2.getName(), player2.getPoints());

    if (player1.getPoints() > player2.getPoints())
        System.out.println(player1.getName() + " is the Grand Winner!");
    else if (player2.getPoints() > player1.getPoints())
        System.out.println(player2.getName() + " is the Grand Winner!");
    else
        System.out.println(" Both players are tied!");


  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...