Здравствуйте, как работает этот js код?

код таков:

var words = [
    "Программа",
    "макака",
    "прекрасный",
    "оладушек"
];
var word = words [Math.floor(Math.random() * words.length)]

var answerArray = [];
for (var i = 0; i < word.length; i++) {
    answerArray[i] = "_";
}
var remainingLetter = word.length;

while (remainingLetter > 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;
                remainingLetter--;
            }
        }
    }
}
alert(answerArray.join(" "));
alert("Отлчно! Было загадано слово " + word);

Не до конца соображаю как он работает, объясните кому не сложно, заранее спасибо!


Ответы (1 шт):

Автор решения: Oliver Patterson

var words =
[
  "Программа",
  "макака",
  "прекрасный",
  "оладушек"
]; // массив слов

var word = words[Math.floor(Math.random() * words.length)] // выбираем одно случайное слово

var answerArray = []; // создаем пустой массив
for (var i = 0; i < word.length; i++) { // проходимся по каждой букве слово
  answerArray[i] = "_"; // подставляем вместо буквы "_" (тем самым мы "шифруем" угадываемое слово)
}
var remainingLetter = word.length; // уазываем, сколько букв нужно угадать (равен длине слова)

while (remainingLetter > 0) { // цикл выполняется, пока есть буквы для угадывания
  alert(answerArray.join(" ")); // выводим наше "заширофанное" угадываемое слово
  var guess = prompt("Угадайте букву или нажмите отмена для выхода"); // выводим окошко с вводом буквы
  if (guess === null) { // если нажата отмена
    break; // выходим из цикла, игра завершается
  } else if (guess.length !== 1) { // если длина введенного текста больше 1 буквы
    alert("Пожалуйста введите одну букву"); // выводим это сообщение
  } else { // если все впорядке
    for (var j = 0; j < word.length; j++) { // проходимся по каждой букве загаданного слова
      if (word[j] === guess) { // если введенная буква совпадает с буквой из загаданного слова
        answerArray[j] = guess; // подставляем ее в "зашифрованное" слово на место "_" нашей буквы
        remainingLetter--; // уменьшаем счетчик, который указывает, сколько букв осталось угадать
      }
    }
  }
}
alert(answerArray.join(" ")); // выводим то, что мы угадали
alert("Отлчно! Было загадано слово " + word); // выводим изначальное слово

→ Ссылка