java hangman - считая правильные догадки пользователя - PullRequest
0 голосов
/ 24 февраля 2019

Я создаю игру на угадывание слов / слов, которая использует массив для проверки, совпадает ли пользовательский ввод с буквой в слове (которую они пытаются угадать).Попытка отследить, сколько раз пользователь угадал правильно (используя переменную occurence), но всякий раз, когда код запускается, он учитывается дважды.

Итак, скажем, слово «альпака» ... Предположение пользователябуква "р".Количество совпадений равно «2» (должно быть «1»)

Почему оно считается дважды и как я могу это исправить?

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

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

            }

PS Я надеюсь, что это имеет смысл, поскольку я не лучший в объяснении вещей.Я могу опубликовать полный код, если это поможет.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Это из-за условия цикла while, которое вы используете.Ваш случай увеличивается, когда indexCount = 0 и indexCount = 1;Возможно, вы хотели сделать это

indexCount = indexCount + result;
0 голосов
/ 24 февраля 2019

Если вы хотите увеличить 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
    }                 
}
...