ИГРА ВИСЕЛИЦА! ОШИБКА В javascript коде, не могу определить. var words = [ "программа",...

+897 голосов
3.8m просмотров

ИГРА ВИСЕЛИЦА! ОШИБКА В javascript коде, не могу определить. var words = [ "программа", "макака", "прекрасный", "оладушек", ]; var word = words [Math.floor(Math.random() * words.length)]; var answerArray = []; for (var i = 0; i 0) { alert(answerArray.join(" ")); var guess = prompt("Угадайте букву или нажмите Отмена для выхода из игры."); if (guess === null) { break; } else if (guess.length !== 1) { alert("Пожалуйста, введите только одну букву."); } else { for (var j = 0; j < word.length; j++); { if (word[j] === guess) { answerArray[j] = guess; remainingletters--; } } } } alert(answerArray.join(" ")); alert("Отлично! Было загадано слово " + word);


Информатика (14 баллов) | 3.8m просмотров
Дан 1 ответ
+176 голосов

Ответ:

  • var words = ["программа", "макака", "прекрасный", "оладушек"];
  • var word = words[Math.floor(Math.random() * words.length)];
  • var answerArray = Array(word.length).fill(" ");
  • var remainingletters = word.length;
  • while (answerArray.includes(" "))  
  • {
  • var guess = prompt("Угадайте букву или нажмите Отмена для выхода из игры.");
  • if (guess === null) break;
  • else if (guess.length !== 1) alert("Пожалуйста, введите только одну букву.");
  • else  
  • {
  • var isGuessed = false;
  • for (var j = 0; j < word.length; j++)
  • if (word[j] == guess & answerArray[j]===" ")  
  • {
  • answerArray[j] = guess;
  • isGuessed = true;
  • break;
  • }
  • if (isGuessed) alert("Ура! Вы угадали букву!");
  • else alert("Увы, такой буквы в моём слове нет :(");
  • }
  • }
  • alert("Отлично! Было загадано слово " + word);

Пример работы:

(3.7k баллов)
+120

Спасибо большое!

+167

Добавить дополнительное условие в while:
while (answerArray.includes(" "))
на
while (answerArray.includes(" ") & (numberOfChances > 0))

+119

Ну и в конце [alert("Отлично! Было загадано слово "+word);] можно изменить на:
if (numberOfChances === 0) alert("Упс! Вы проиграли! Было загадано слово " + word);
else alert("Отлично! Вы победили! Было загадано слово " + word);

+166

Строчку [else alert("Увы, такой буквы в моём слове нет :(")] изменить на:
else {
numberOfChances--;
alert("Увы, такой буквы в моём слове нет :( \r\nОсталось " + numberOfChances + " попыток.");
}

+123

В начало добавляете [var numberOfChances = 6;], можно (даже нужно) взамен [var remainingletters = word.length;] - оно получилась лишним. Вместо 6 можете указать любое другое число - это изначальное количество попыток/шансов.