Добрый вечер. Написал код игры виселица. Возникли проблемы. Если значение переменной numberAttempt поменять на > 5, то игра начинает работать некорректно. Помогите пожалуйста разобраться с чем это связано. Заранее огромное спасибо.
P.S Если неправильно оформил тему, что-то не написал, тема не отражает сути и т.д. Сообщите пожалуйста, буду признателен.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hangman!</title>
</head>
<body>
<h1>Hangman!</h1>
<script>
var pickWord = function () {
var words = ["программа", "детерминант", "обезьяна" , "кошка", "компьютер", "волна", "портрет", "корабль", "космос", "интернет", "цепочка", "дротик", "человек", "мандарин", "машина", "автобус", "автомобиль", "озарение", "идея", "страх", "ужас", "номер", "комната", "оружие", "балкон", "терраса", "картина", "светофор", "семафор", "индейка", "курица", "фонарь", "рыба", "фотография", "строка", "огонь", "вода", "сказка", "орудие", "броня", "инновация", "пруд", "речка", "чудовище", "шапка", "нитка", "бочка", "мусор", "останки", "клавиатура", "процессор", "блок", "видеокарта", "наушники", "портфель", "банка", "мозг", "рука", "конфета"];
return words[Math.floor(Math.random() * words.length)];
};
var setupAnswerArray = function (word) {
var answerArray = []
for (var i = 0; i < word.length; i++) {
answerArray[i] = "_";
}
return answerArray;
};
var showPlayerProgress = function (answerArray) {
alert(answerArray.join(" "));
};
var getGuess = function () {
return prompt("Угадайте букву или нажмите Отмена для выхода из игры");
};
var updateGameState = function (guess, word, answerArray) {
var appearances = 0;
for (var j = 0; j < word.length; j++) {
if (word[j] === guess) {
answerArray[j] = guess;
appearances++;
}
}
return appearances;
};
var showAnswerAndCongratulatePlayer = function (answerArray, numberAttempt) {
showPlayerProgress(answerArray);
};
var word = pickWord();
var answerArray = setupAnswerArray(word);
var remainingLetters = word.length;
var numberAttempt = 5;
while (remainingLetters > 0 && numberAttempt > 0) { showPlayerProgress(answerArray); var guess = getGuess();
if (guess === null) {
break;
} else if (guess.length !== 1) {
alert("Пожалуйста, введите только одну букву.");
} else {
numberAttempt--;
guess = guess.toLowerCase();
var correctGuesses = updateGameState(guess, word, answerArray);
remainingLetters -= correctGuesses;
remainingLetters--;
}
}
alert(answerArray.join(" "));
if (numberAttempt > 0) {
alert("Отлично! Было загадано слово " + word);
} else {
alert("Плохо! Вас повесили! Было загадано слово " + word);
}
showAnswerAndCongratulatePlayer(answerArray);
</script>
</body>
</html>