Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Часть кода дальше не дает ему работать (https://javascript.ru/forum/misc/82707-chast-koda-dalshe-ne-daet-emu-rabotat.html)

1Euronymous 16.06.2021 22:26

Часть кода дальше не дает ему работать
 
Всем привет.
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, то возвращает опять пустую строку. При этом попытки уменьшаются.
Если удалить часть с комментом, то все делает правильно.

Объяснил как мог. Только вникаю в суть.

Всем спасибо!

Где ошибка?! Спасибо!

рони 17.06.2021 06:46

1Euronymous,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

voraa 17.06.2021 08:58

1Euronymous,
Та часть, которая закоментирована, не должна быть в цикле.
В цикле только проверять нашли ли букву.
И потом, если нет ни одного совпадения (а это можно выяснить только пройдя весь цикл) уже выполнять эту часть.

1Euronymous 17.06.2021 22:33

Спасибо. Исправил!


Часовой пояс GMT +3, время: 14:01.