嘿伙计们(顺便说一句,我是 java 新手)
我正在使用 Java 开发一个小型猜谜游戏,但遇到了一些问题。 如果有人能帮助我解决这个问题,我将非常感激。
游戏是这样的:
- 猜测单词列表存储在数据库中
- 选择一个随机单词并
- 以变相的形式向用户展示
- 用户必须使用字母猜测单词
- 他们需要猜 5 个字母,直到游戏结束 结束
现在我的问题是我一直被错误计数困扰......
我的代码是这样的:
//word is the word that user must guess
// asciiToChar is letter that users've guessed
// J is just a variable used for count
for (j=0; j < word.length(); j++)
{ if (word.charAt(j) != asciiToChar)
{
error++;
}
}
System.out.println("Number of Errors: "+" "+ error);
每当用户执行错误的猜测时,错误计数应该会增加,但它会显示一些随机数字,例如 8,14 等。我需要弄清楚如何将计数增加 1 直到 5 个猜测
每当我使用 word.charAt(j) != asciiToChar
而不是 ==
时,它都会给我正确猜测的正确计数。
我想不通:(
任何帮助将不胜感激
最佳答案
您的循环逻辑是错误的,它会为每个不等于用户猜测的字符添加错误。
尝试这样做(如果我做对了):
boolean found = false;
for (j=0; j < word.length(); j++)
{
if (word.charAt(j) == asciiToChar)
{
found = true;
break; // no need to search further
}
}
if(!found) error++; // if the letter isn't used, add 1 error
正如 Ingo Bürk 在评论中正确指出的那样,有一个针对此问题的预制解决方案:
if(!word.contains(asciiToChar)) { error++; }
关于Java:猜谜游戏错误计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876384/