嘿伙计们(我是Java B.T.W的新手)
我正在开发一个使用Java的小型猜谜游戏,我遇到了一些问题。 如果有人能帮我解决这个问题,我真的很感激。
游戏是这样的:
现在我的问题是我一直坚持错误计数......
我的代码是这样的:
//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或其他。我需要弄清楚如何将计数增加一到5次猜测
每当我使用word.charAt(j) != asciiToChar
而不是==
时,它会给我一个正确的计数来进行正确的猜测。
我无法弄明白:(
任何帮助都会得到赞赏
答案 0 :(得分:1)
您的循环逻辑错误,它会为每个不等于用户猜测的字符添加错误。
尝试这样做(如果我做对了):
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
正如IngoBürk在评论中正确指出的那样,有一个预先解决的解决方案:
if(!word.contains(asciiToChar)) { error++; }
答案 1 :(得分:1)
您的循环遍历word
中的所有字符,而每个字符与用户指定的字符不匹配,会将错误增加一。因此,如果单词是“cat”并且用户猜到'a',您将得到两个错误,一个用于'c',一个用于't'。