繁体   English   中英

猜谜游戏循环

[英]Guessing game loop

这是我制作的猜谜游戏的代码。 我的计数器没有增加超过 1。我正在从一个单独的控制器类传递参数选择和生成的数字。 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;

    }
}

这里没有循环。 您正在寻找类似while(count < attempts)

您需要将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;
}

试试这个:在while条件之前增加计数器:

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

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

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

return result;

...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM