java - 猜谜游戏添加方法

标签 java methods jgrasp

我需要为我不久前制作的猜谜游戏添加一个方法。该方法应该返回它们输入的值,但应该使用循环来要求重新输入,直到指定这两个值之一。 此外,如果用户输入一个单词而不是一个整数,它应该要求一个数字。我知道我需要使用字符串而不是整数。我只是很难弄清楚这一点。这是我到目前为止所拥有的:

import java.util.Random;

import java.util.Scanner;

class GuessNumber {

    static Random rand = new Random(); 
    static Scanner scan = new Scanner(System.in); 
    static int number; 

    public static void main(String[] args) {
        playGame();
    }

    public static void playGame() {
        number = rand.nextInt(100) + 1;
        System.out.println("Guess the number between 1 and 100");
        while (true) {
            int guess = scan.nextInt();
            if (guess < number) {
                System.out.println("Higher!");
            } else if (guess > number) {
                System.out.println("Lower!");
            } else if (guess == number) {
                System.out.println("Correct!");
                Scanner scan2 = new Scanner(System.in);
                System.out.println("do you wanna play again?[Y/N]");
                String val = scan2.next();
                if (val.equalsIgnoreCase("Y")) {
                    playGame();
                } else {
                    break;
                }
            }
        }
    }
}

最佳答案

可能有更好的方法来做到这一点,但请尝试以下方法:

String input = scan.next();
int guess;
try{
    guess = Integer.parseInt(input);
    //rest of the code inside while(true) loop
}
catch(Exception e){
    System.out.println("You need to enter a valid number.");
}

然后进行 Y/N 验证:

String val = "No";
Scanner scan2 = new Scanner(System.in);
do{
    System.out.println("do you wanna play again?[Y/N]");
    val = scan2.next();
}
while(!val.equalsIgnoreCase("Y") && !val.equalsIgnoreCase("N"))
if (val.equalsIgnoreCase("Y")) {
   playGame();
   break;
} else {
   break;
}

推理:如果他们没有输入有效的数字,您将收到错误,因此您需要捕获错误并让他们知道出了什么问题。我喜欢以字符串形式获取输入并尝试将其转换为整数。至于 do/while 部分...除非他们输入 Y 或 N,否则它将继续询问他们。一旦退出循环,如果输入是“Y”,它将再次调用 playGame() ,然后在完成后中断(基本上每当用户在下一个游戏中输入 n 时)。如果它不是“Y”,那么它一定是“N”并且需要中断。

请告诉我这是否有帮助。我有可以运行的完整代码,但这对您来说应该很容易实现。

关于java - 猜谜游戏添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247562/

相关文章:

C++ 设计 : single function performing multiple tasks vs multiple functions performing single task

python - 仅当变量为 True 时才执行函数

java - 更改 jvm 堆大小 - jgrasp

java - 为什么 CF UAA check_token 端点需要 clientId/clientSecret?

用于总和和平均值的 Java printf

java - Play Framework : No @javax. persistence.Id 字段在类中找到

java - Elasticsearch 与 Hibernate 搜索集成

java - 如何让两个类引用同一个对象及其方法

java - 如何创建一个有范围的随机数?

c++ - 关于 MinGW32 的复制构造函数的疯狂 C++ 编译器错误消息