我正在制作一个Hangman游戏,用户猜测一个颜色。我想要发生的是:如果用户不正确地获得了5以上(查看了所有的5个提示),它将声明用户丢失了。在while循环完成之后(单词是正确的,或者经过了所有的5个提示),它应该告诉你是否赢了。这是代码中执行以下操作的部分:
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String color = getColor();
String result = EmptyStr(color);
String[] hints = getHints(color);
System.out.println("Please enter a letter:");
char letter = in.next().charAt(0);
//-----------------------------------------------------------
int wrong = 0;
while (wrong<6){
if (checkLetter(color, letter)){
// result was previously defined elsewhere so don't worry about it
result = Result(color, result, letter);
System.out.println("Correct guess! here is your word so far: " + result);
System.out.println("Lifelines left: " + (5 - wrong));
if (result.equals(color)){
System.out.println("congratulations! You Won!");
break;
}
}
else{
wrong ++;
System.out.println(hints[0]);
System.out.println("Lifelines left: " + (5 - wrong));
}
}
// also not sure what to put here after player wins or loses: System.out.println("Sorry! You lost! The correct word was: " + color);}
然而,一旦我输入了一个字母,并且它是正确的,result = Result(color, result, letter); System.out.println("Correct guess! here is your word so far: " + result); System.out.println("Lifelines left: " + (5 - wrong));就会永远重复。我想知道:为什么它会永远重复?而且,我怎样才能修好它才能起作用呢?
发布于 2017-11-08 04:28:15
我发现了我自己的问题!
问题是,为了重申并允许我重新输入一个字母,char letter = in.next().charAt(0);必须在while循环中。解决了整个问题!
发布于 2017-11-08 04:23:37
我想我明白问题了。当用户得到正确的猜测时,只有在错误的情况下,才有迭代。确保添加另一个“错误的++",在第一个如果。也许能解决问题。
if (checkLetter(color, letter)){
// result was previously defined elsewhere so don't worry about it
result = Result(color, result, letter);
System.out.println("Correct guess! here is your word so far: " + result);
System.out.println("Lifelines left: " + (5 - wrong));
wrong ++;https://stackoverflow.com/questions/47171442
复制相似问题