Задать вопрос
@Olaff17

Возникла проблема, не могу понять как выполнить условие задачи?

#3. Ограничение по ходам- вопрос из книги

Сейчас наша «Виселица» позволяет угадывать буквы сколько
угодно раз, до победного конца. Добавьте в программу переменную для учета попыток и завершайте игру, если игрок
израсходовал все попытки. (Подсказка: проверяйте значение
этой переменной в том же цикле while, где проверяется условие remainingLetters > 0, а с помощью операции && можно
убедиться, что сразу два логических условия дают true —
см. вторую главу.)


Мой код^
<code lang="javascript">

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>Виселица!</title>
</head>
<body>
 <h1>Виселица!</h1>
    <script>
  let words = ["программа","макака","прекрасный","оладушек","носок","курица","ноутбук","бургер"];

 let word = words[Math.floor(Math.random() * words.length)]
 let answerArray = []
  for (let i = 0; i < word.length; i++) {
    answerArray[i] = "_"
  }
  let remainingLetters = word.length;
  let attempt = 3;

    while(remainingLetters > 0 && attempt > 0) {
        alert(answerArray.join(" "));
     let guess = prompt("Угадайте букву, или нажмите Отмена для выхода из игры.");
     guess = guess.toLowerCase()
       if (guess === null) {
        break;
       } else if(guess.length !== 1) {
        alert("Пожалуйста, введите одиночную букву.");
        } else {
        for (let j = 0; j < word.length; j++) {
          if(word[j] === guess && answerArray[j] === "_") {
            answerArray[j] = guess
            remainingLetters-- 
         }
      }
   }
}
        alert(answerArray.join(" "));
         alert("Отлично! Было загадано слово " + word);
    </script>
</body>
</html>
</code>
  • Вопрос задан
  • 686 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
забыли уменьшать счётчик attempt на каждой итерации

-    while(remainingLetters > 0 && attempt > 0) {
+    while(remainingLetters > 0 && attempt-- > 0) {
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы