java - 使用 y/n 在 java 中重新启动游戏?

标签 java restart application-restart alternate

如何在java中重新启动游戏?

这是我尝试过但没有成功的方法:

String playagain;
    String y="y";
    String n="n";

//这里有大量的游戏代码

System.out.println("play another game?(y/n)");
    playagain=input.next();
    if(playagain==y){
        Game.end();
        Game.start();
    }else if(playagain==n){
        System.out.println("Goodbye");
    }

game 是类的名称,但它坚持要求我创建一个方法来使其工作。 有人知道当玩家点击 y 时重新启动游戏的更简单方法吗? 感谢任何帮助

最佳答案

我怀疑您的原始代码中发生了两件事:

  1. 您使用的是 yn,而不是 "y""n" - 前者对于编译器来说看起来像是变量名,而后者是字符串文字,我认为我们正在追求这一点。如果您实际上指的是前者,我们需要将一些名为 yn 的变量声明为字符串,并给它们一些值(可能是 "y""n" 分别),尽管我认为在这种情况下不值得使用变量(因为它们只会在代码中被引用一次,没有复杂的表达式,不可变。

  2. 如果在比较字符串时简单地使用 ==,Java 实际上会检查字符串是否具有相同的引用(即它们是完全相同的实例、相同的对象)。如果你想检查字符串的内容,我们需要评估string1.equals(string2),如果它们具有相同的内容,则为 true,否则为 false。更多信息here .

编辑:好的,问题比我最初想象的要深。考虑像这样构建您的代码而不是上面的代码(如果您没有这些开始和结束方法):

while (true) {
    // Play the game here
    // Play again?
    boolean isPlayingAgain = true;
    while (true) {
        System.out.println("play another game?(y/n)");
        String playingAgainResponse = input.next();
        if (playingAgainResponse.equalsIgnoreCase("y")) {
            break;
        } else if (playingAgainResponse.equalsIgnoreCase("n")) {
            System.out.println("Goodbye");
            isPlayingAgain = false;
            break;
        }
    }
    if (!isPlayingAgain) {
        break;
    }
}

因此,只有当玩家不想再玩时,外循环才会终止,否则我们将继续运行代码来玩游戏。该内部循环确保玩家输入“y”或“n”(实际上是大写或小写),因此它正在处理玩家输入一些乱码的情况。

关于java - 使用 y/n 在 java 中重新启动游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32913475/

相关文章:

bash - 使用正确的语法运行Bash脚本,但它不断给我带来语法错误

java - 定时器和报警管理器的区别

.net - WCF 即服务 : Modifying app. 配置文件

java - Hadoop : set a variable like hashSet only once so that it can be utilized multiple times in each map task

java - 当我按下后退按钮时,我的 Activity 重新启动

R - 如何按年份使用累积总和并在满足条件时重新启动累积总和

kubernetes - K8s : StatefulSet how to increase time between resatrt of pod in case fails

java - 在ubuntu中重新启动java应用程序

java - JOGL 程序纹理在缩放时会出现 Blob

java - 使用 Gson 创建 JSON 会使应用程序崩溃