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

标签 java arrays if-statement while-loop

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

所以我们假设这个词是“alpaca”... 用户猜测字母“p”。 出现次数等于“2”(应为“1”)

为什么会计算两次以及如何解决?

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

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

            }

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

最佳答案

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

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
    }                 
}

关于java Hangman - 计算正确的用户猜测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54849324/

相关文章:

java - 下面的 IF-ELSE block 可以压缩为单个 IF 语句吗?

Java:如何在不指定完整类型的情况下为函数参数指定类型

java - bazel 远程工作人员可部署 jar 不工作

javascript - 使用另一个数组中的值转换所有数组键

java - JButton 的通用属性

c++ - Mozilla C/C++ 编码风格

java - 如何使用 JFrame 制作此布局

Java servlet 不写入响应字节

php - 如何使用 PHP 创建没有列名的 JSON 文件?

Java:使用 split 方法添加时,字符串数组列表中出现额外的空格