Угадай игровой цикл - PullRequest
0 голосов
/ 03 марта 2019

Вот код для игры в угадайку, которую я сделал.Мой счетчик не увеличивается в прошлом. Я передаю выбор параметров и generateNumber из отдельного класса контроллера.Должен ли цикл do while находиться в классе контроллера?

            public String startGuessingGame(int choice, int generatedNumber) {

        int count = 0;
        final int attempts = 4;
        String result = null;

            do {

                count++;

                if (choice == generatedNumber) {

                    result = "Attempt " + count + " "
                            + "- You have guessed the correct number!";

                }

                else if (choice > 50 || choice < 0) {

                    result = "Out of range. "
                            + "\nPlease choose a number between 1 and 50."; 

                }

                else if (choice > generatedNumber) {

                    result = "Attempt " + count + " " 
                            + " - You have guessed too high!";

                }

                else if (choice < generatedNumber) {

                    result = "Attempt " + count + " " 
                            + "- You have guessed too low!";

                }


                if (count == attempts) {

                    result = "You are out of guesses! The number was " + generatedNumber;

                }
            }

        while(count < attempts);

            return result;

    }
}

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Вам необходимо сделать count переменной класса (членом) вашего класса контроллера и иметь цикл do / while в этом классе, чтобы startGuessingGame обрабатывал только проверку выбора пользователя.Примерно так, но код далек от завершения

public class SomeControllerClass() {
    final int attempts = 4;
    int count = 0;

    public void someMethod() {
        int choice = 0;
        do {
            choice = getChoice();
            count++;
            String text = otherClass.startGuessingGame(choice, generatedNumber);
        while (count < attempts);
    }

и метод выполняет только проверку

public String startGuessingGame(int choice, int generatedNumber) {
    String result = null;

    if (choice == generatedNumber) {
        result = "Attempt " + count + " "
                        + "- You have guessed the correct number!";
    } else if (choice > 50 || choice < 0) {
    //and so on
   return result;
}
0 голосов
/ 03 марта 2019

Попробуйте: увеличить счетчик в конце до условия while:

do{
    ...
    if (count == attempts) {

        result = "You are out of guesses! The number was " + generatedNumber;

    }
    count++;
}while(count < attempts);

return result;

...
0 голосов
/ 03 марта 2019

Здесь нет петли.Вы ищете что-то вроде while(count < attempts).

...