首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >玩数字猜谜游戏

玩数字猜谜游戏
EN

Code Review用户
提问于 2016-07-09 14:37:13
回答 1查看 11.9K关注 0票数 2

总的来说,我对Java很陌生,但我想获得一些关于我正在学习的CS类的代码的输入。这是一个用数字来玩Hi猜谜游戏的程序.用户可以选择退出游戏中途输入0,然后提示他们再次发挥,如果他们选择。如果他们猜对了,他们也会被提示再玩一次。

但是,代码工作得很好,我最初的方向是使用while循环作为主条件,而不是使用do语句,但是在用户输入0退出循环之后,我无法让游戏再次开始。我很想知道如何使用while循环作为主要的条件和do语句。

代码语言:javascript
复制
import java.util.Scanner;
import java.util.Random;

public class HiLo {
    public static void main(String[] args)
    {
        int guess, answer, count = 0;
        String restart;

        Random generator = new Random();
        Scanner scan = new Scanner(System.in);

        System.out.print("What number do you guess (enter 0 to quit)? ");
        guess = scan.nextInt();

        answer = generator.nextInt(100) + 1; // randomly generates a number between 1-100

        do // loops through game until user gets answer correct or quits
        {
            count++;

            if (guess == 0) // if user enters 0 to quit game, this message is displayed
            {
                System.out.println("\nQuitting game");
                System.out.println("\nWould you like to play again?");
                restart = scan.next();
                if (restart.equalsIgnoreCase("Y"))
                {
                    System.out.print("Enter a number to start playing");
                    guess = scan.nextInt();
                }
                else
                    break;
            }
            if (guess == answer)
            {
                System.out.println("That's correct! You made " + count + " guesses.");
                System.out.println("Would you like to play again?");
                restart = scan.next();
                if (restart.equalsIgnoreCase("Y"))
                {
                    System.out.print("Enter a number to start playing");
                    guess = scan.nextInt();
                }
                else
                    break;
            }
            if (guess < answer)
            {
                System.out.print("Your guess is too low, try again.");
                guess = scan.nextInt();
            }
            if (guess > answer)
            {
                System.out.print("Your guess is too high, try again.");
                guess = scan.nextInt();
            }

        }
        while (guess != 0);

        System.out.print("Thanks for playing!");
    }
}
EN

回答 1

Code Review用户

发布于 2016-07-09 14:53:40

压痕

您的主要功能需要缩进类中的一个级别。

函数

将main()中的一些代码移到函数中会使您的代码受益。main()函数通常应该是处理参数、初始化程序和捕获任何异常的地方。由于它是当前实现的,您需要另一个变量来获得一个while循环才能工作。如果猜测部分位于另一个函数中,while循环将更容易实现。

多圈

您应该有一个循环用于继续游戏,另一个循环用于猜测部分。

票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/134370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档