const words = ['программа', 'макака', 'прекрасный', 'оладушек', 'носок', 'курица', 'ноутбук', 'бургер'];
const word = words[Math.floor(Math.random() * words.length)];
const answerArray = [];
for (let i = 0; i < word.length; i++) {
answerArray[i] = '_';
}
let remainingLetters = word.length;
let attempts = 3;
while (remainingLetters > 0 && attempts > 0) {
alert(answerArray.join(' '));
let guess = prompt('Угадайте букву, или нажмите Отмена для выхода из игры.');
guess = guess.toLowerCase();
if (guess === null) {
break;
} else if (guess.length !== 1) {
alert('Пожалуйста, введите одиночную букву.');
} else {
let isCorrectAnswer = false;
for (let j = 0; j < word.length; j++) {
if (word[j] === guess && answerArray[j] === '_') {
answerArray[j] = guess;
remainingLetters--;
isCorrectAnswer = true;
}
}
if (!isCorrectAnswer) {
attempts--;
if (attempts === 0) {
alert('Ваши попытки закончились');
break;
} else {
alert('У Вас осталось ' + attempts + ' попыток');
}
}
}
}
alert(answerArray.join(' '));
alert('Отлично! Было загадано слово ' + word);
isCorrectAnswer
в false стоит на каждой попытке заново. правильныйОтвет = false
= true
.правильныйОтвет === false
то только тогда счётчик оставшихся попыток уменьшать на 1.
С моим алгоритмом, по мере вливаний, все ячейки приходят к финишу в 1 одновременно (стремятся)