Часть кода дальше не дает ему работать
Всем привет.
var name = prompt("Как вас зовут?");
alert("Привет, " + name + ". Давай теперь с играем в игру!");
// Выбираем случайное слово из массива
var words = ["программа", "процессор", "прекрасный", "робот"];
var word = words[Math.floor(Math.random() * words.length)];
// Попытки
var remainingAttempt = 10;
// Создаем массив ответов и заполняем его
var answerArray = [];
for (var i = 0; i < word.length; i++) {
answerArray[i] = " _ ";
}
// Неугаданные буквы
var remainingLetters = word.length;
// Основной цикл программы
while (remainingLetters > 0 && remainingAttempt > 0) {
alert("Текущее слово : " + answerArray.join(" "));
var guess = prompt("Угадайте букву или нажмите Отмена для выхода из игры.");
guess = guess.toLowerCase();
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("Вы угадали букву!");
} /* else {
remainingAttempt--;
alert("Осталось попыток " + remainingAttempt);
break;
} */
}
}
}
alert('Результат : ' + answerArray.join(" "));
alert("Конец игры! Было загадано слово " + word);
В той части, где закомментирована. Проблема в том, что код срабатывает верно только на ПЕРВУЮ правильно написанную букву. Если же написать букву номер 2 или 5, то возвращает опять пустую строку. При этом попытки уменьшаются. Если удалить часть с комментом, то все делает правильно. Объяснил как мог. Только вникаю в суть. Всем спасибо! Где ошибка?! Спасибо! |
1Euronymous,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
1Euronymous,
Та часть, которая закоментирована, не должна быть в цикле. В цикле только проверять нашли ли букву. И потом, если нет ни одного совпадения (а это можно выяснить только пройдя весь цикл) уже выполнять эту часть. |
Спасибо. Исправил!
|
| Часовой пояс GMT +3, время: 21:46. |