Java Hangman-计算正确的用户猜测

时间:2019-02-24 06:21:55

标签: java arrays if-statement while-loop

我正在构建一个子手/单词猜测游戏,该游戏使用数组检查用户输入的单词是否与单词中的字母匹配(他们正在尝试猜测)。试图跟踪用户正确猜测的次数(使用encenence变量),但是每当代码运行时,它就会计数两次。

所以我们说这个词是“羊驼毛” ... 用户猜测字母“ p”。 出现率等于“ 2”(应为“ 1”)

为什么要计数两次,我该如何解决?

while (indexCount < wordLength) {
                result = word1.indexOf(guess, indexCount);

                if (result != -1) {
                    occurence++;
                    //wordArr[result] = guess + " ";
                }
                indexCount++;
                

            }

P.S。我希望这是有道理的,因为我不是最擅长解释事物的人。 如果有帮助,我可以发布完整的代码。

2 个答案:

答案 0 :(得分:1)

如果您想将occurence增加猜字母的出现次数,则应该为:

indexCount = 0;
while (indexCount < wordLength) {
    result = word1.indexOf(guess, indexCount);
    if (result > -1) {
        occurence++;
        indexCount = result + 1; // current occurrence is at index result, so search for
                                 // next occurrence starting at index result + 1
    } else {
        break; // no more occurrences
    }                 
}

答案 1 :(得分:0)

那是因为您正在使用while循环条件。当indexCount = 0和indexCount = 1时,您的出现次数会增加;可能您想这样做

indexCount = indexCount + result;