Показать сообщение отдельно
  #10 (permalink)  
Старый 29.09.2017, 19:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Omnia,
протестируйте этот вариант
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hangman!</title>
</head>
<body>
<h1>Hangman!</h1>

<script>
var pickWord = function () {
var words = ["программа", "детерминант", "обезьяна" , "кошка", "компьютер", "волна", "портрет", "корабль", "космос", "интернет", "цепочка", "дротик", "человек", "мандарин", "машина", "автобус", "автомобиль", "озарение", "идея", "страх", "ужас", "номер", "комната", "оружие", "балкон", "терраса",  "картина", "светофор", "семафор", "индейка", "курица", "фонарь", "рыба", "фотография", "строка", "огонь", "вода", "сказка", "орудие", "броня", "инновация", "пруд", "речка", "чудовище", "шапка", "нитка", "бочка", "мусор", "останки", "клавиатура", "процессор", "блок", "видеокарта", "наушники", "портфель", "банка", "мозг", "рука", "конфета"];
return words[Math.floor(Math.random() * words.length)];
};

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

return answerArray;
};

var showPlayerProgress = function (answerArray) {
alert(answerArray.join(" "));
};

var getGuess = function () {
return prompt("Угадайте букву или нажмите Отмена для выхода из игры");
};

var updateGameState = function (guess, word, answerArray) {
var appearances = 0;
for (var j = 0; j < word.length; j++) {
if (word[j] === guess && answerArray[j] !== guess) {
answerArray[j] = guess;
appearances++;
}
}

return appearances;
};

var showAnswerAndCongratulatePlayer = function (answerArray, numberAttempt) {
showPlayerProgress(answerArray);

};

var word = pickWord();
var answerArray = setupAnswerArray(word);
var remainingLetters = word.length;
var numberAttempt = 5;

while (remainingLetters > 0 && numberAttempt > 0) { showPlayerProgress(answerArray); var guess = getGuess();
if (guess === null) {
break;
} else if (guess.length !== 1) {
alert("Пожалуйста, введите только одну букву.");
} else {
guess = guess.toLowerCase();
var correctGuesses = updateGameState(guess, word, answerArray);
remainingLetters -= correctGuesses;
if(!correctGuesses) numberAttempt--;
alert("осталось " +numberAttempt+ " попыток");
}
}

alert(answerArray.join(" "));

if (numberAttempt > 0) {
alert("Отлично! Было загадано слово " + word);
} else {
alert("Плохо! Вас повесили! Было загадано слово " + word);
}

showAnswerAndCongratulatePlayer(answerArray);
</script>

</body>
</html>
Ответить с цитированием