@ozerovlife

Как ограничить цикл по неверным попыткам?

Изучаю javascript и вот задачка в учебнике, что нужно ограничить количество неверных ходов, в моем случае до трех. То есть, три раза ввел не ту букву, конец игры, либо неправильно ввел букву - появляется alert. Мой код не работает, помогите разобраться.

var randomWords = ["car", "wallet", "eternity"];
	var choiceWords = randomWords[Math.floor(Math.random() * randomWords.length)];
	var answerArray = [];
	for (var i = 0; i < choiceWords.length; i++){
		answerArray[i] = "_";
	}
	
	var remainingLetters = choiceWords.length;
	var attempt = 3;
	

	while (remainingLetters > 0 && attempt > 0) {
		alert(answerArray.join(" "));
		var guessWord = prompt("Enter the letter").toLowerCase();
		if (guessWord === null){
			break;
		} else if (guessWord.length !== 1){
			alert("Please enter only one letter");
		} else {
			for (var j = 0; j < choiceWords.length; j++){
				if (choiceWords[j] === guessWord){
					answerArray[j] = guessWord;
					remainingLetters--;
				} else if (choiceWords[j] !== guessWord){
					alert("wrong!!")
					attempt--;
				}
			}
		} 
	}


Еще прикол в том что:

else if (choiceWords[j] !== guessWord){
					alert("wrong!!")
					attempt--;


Срабатывает до тех пор пока у переменной attempt не будет ноль. Хотя по идее, после того как ввел неправильно букву, должно перекинуть в начало цикла и показать всплывающее окно, что и происходит, если убрать условие на проверку неверного ввода, но не происходит, если эта проверка есть.
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
Создайте переменную вне, прибавляйте единичку при не верном ответе и проверяйте, мол если больше / равно 3, выходим из цикла, выводим луз.

click
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы