Часть кода дальше не дает ему работать
Всем привет.
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, время: 03:56. |