
Вопрос задан 05.07.2023 в 06:28.
Предмет Информатика.
Спрашивает Горбунова Ксения.
ИГРА ВИСЕЛИЦА! ОШИБКА В 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);

Ответы на вопрос

Отвечает Аспедников Макс.
Ответ:
- 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);
Пример работы:








Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Проблема в вашем коде связана с некорректным использованием символа <
, который представляет собой HTML-код для символа <
(меньше). В JavaScript коде вы должны использовать просто <
, чтобы сравнивать значения в циклах. Также у вас есть небольшая ошибка в условии цикла, которая приводит к неправильной работе. Вот исправленный код:
javascriptvar words = [ "программа", "макака", "прекрасный", "оладушек" ];
var word = words[Math.floor(Math.random() * words.length)];
var answerArray = [];
for (var i = 0; i < word.length; i++) {
answerArray[i] = "_";
}
var remainingLetters = word.length;
while (remainingLetters > 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("Отлично! Было загадано слово: " + word);
В этом коде я исправил ошибку с символом <
, а также переписал условие цикла, чтобы оно корректно работало сравнением индексов. Теперь код должен правильно выполняться и вам не должно быть видно никаких ошибок.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 558

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili