我遇到了问题。我正在为ChatBot做一个学校项目。这是聊天机器人的游戏部分。这是一个单词争夺战游戏。我可以输入错误的答案,程序会提示我重新输入答案。但是,如果我输入正确的答案,程序就会停在那里,程序没有停止。
我想要做的是重复代码,比如继续玩游戏,直到我输入单词“end”,但我不知道如何实现它。此外,大多数单词不断重复。例如,[animal]这个词通常会被加入[anialm]。
所以我想在改进代码方面得到一些帮助。非常感谢你!!我还是刚开始学习编程的一年级。
{
"name": "John Doe",
"email": "john.doe@company.com",
"active": null
}
答案 0 :(得分:1)
我认为首先要做的是重新构建代码,这样可以更容易调试。
我想说你的代码基本上要求分成两个部分:一个用于运行游戏,一个用于包含数据:
public class Anagram {
private String original= null;
private String scrambled = null;
public Anagram(String originalWord) {
this.original = originalWord;
this.scrambled = scramble(originalWord);
}
private String scramble(String original) {
//scramble logic here
return null;//your scrambled String
}
public boolean guess(String guess) {
return original.equals(guess);
}
}
然后我们将不用担心,我们的运行循环基本上变成了:
Anagram anagram = new Anagram(wordToGuess);
String input = null;
while (true) {
System.out.print(">>> ");
input = userinput.nextLine();
if (input.equalsIgnoreCase("end")) {
System.out.println("Unlucky, please come back again");
System.exit(0);
}
if (anagram.guess(input)) {
System.out.println(">>> Great Job getting the answer!");
System.exit(0);
}
else {
System.out.print(">>> ");
System.out.println("Incorrrect, please try again!");
}
}
这使用while(true)
,可以很容易地用其他类型的循环替换。
此外,通过将设置代码提取到另一种方法,您可能会受益。
答案 1 :(得分:0)
使用break;
语句结束循环。
if(guess.equalsIgnoreCase("end")){
break;
}
答案 2 :(得分:-1)
我建议你定义boolean
,它代表游戏的状态(它是否还在运行);然后,您可以将所需的操作放在while
循环中,并将boolean
作为条件。
while(isRunning) {
//actions repeated in here
}
游戏结束后,只需更改boolean
的州。
答案 3 :(得分:-1)
if(guess.equalsIgnoreCase("end")){
System.exit(0);
}