阵列猜谜游戏

时间:2014-12-03 03:39:03

标签: java arrays

我是一个java菜鸟,为了课堂作业我必须创建一个猜谜游戏。我还没有完成游戏,但在简化键盘输入数组时我想要一些建议。我能够随机创建数组" 5"数字,但我不知道如何以相同的方式为随机数简化键盘输入的数组。

以下是我需要建议的部分:


    Scanner input = new Scanner(System.in);
    Random number = new Random();
    int x,y,z,a,b;
    x=number.nextInt(9); //The 9 limits the randomized number to values between between -1 & 10
    y=number.nextInt(9);
    z=number.nextInt(9);
    a=number.nextInt(9);
    b=number.nextInt(9);
    int secretNum[] = {x,y,z,a,b};
    int numOfGuess = 3;
    boolean win = false;

    System.out.println("Try to guess the five digit number");
    {
        while (win || numOfGuess > 0) 
        {
            int guess[]=new int[5];
            guess[0]=input.nextInt(9);
            guess[1]=input.nextInt(9);
            guess[2]=input.nextInt(9);
            guess[3]=input.nextInt(9);
            guess[4]=input.nextInt(9);
            numOfGuess--;

2 个答案:

答案 0 :(得分:0)

首先,您可以简化从复杂方法生成的数字到:

Random rand = new Random();
int randomNum = rand.nextInt((max - min) + 1) + min;

如果设置max = 99999且min = 10000,它将为您提供一个随机的5位数字。

为了接受用户输入,你可以更好地使用

Scanner scan = new Scanner(System.in);
guess = scan.nextLine();

然后使用if语句查看该数字是否在5位数限制内。

就循环而言,注释建议使用for循环而不是while循环。遵循他的建议会好得多。即。

for (int i=0;i<maxGuesses;i++)
Listen for input
If correct, set won=1 break
else do nothing
end for loop
if won=1 Print you won
Else print You suck at guessing 5 digit numbers

答案 1 :(得分:0)

简单的代码通常是最好的方法:

在伪代码中:

secret = 10000 + number.nextInt(90000);
for (int i = 0; i < numOfGuess; i++) {
    read guess (a single int)
    if guess == secret then user wins (and exit)
}
user loses