Java:猜测游戏错误计数

时间:2013-11-09 13:14:49

标签: java count

嘿伙计们(我是Java B.T.W的新手)

我正在开发一个使用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或其他。我需要弄清楚如何将计数增加一到5次猜测

每当我使用word.charAt(j) != asciiToChar而不是==时,它会给我一个正确的计数来进行正确的猜测。

我无法弄明白:(

任何帮助都会得到赞赏

2 个答案:

答案 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'。