JSFiddle - React, Tailwind, and code Playground
by LuckyCat
HTML
<a href="#" id="go">Начать игру</a>
JavaScript
document.getElementById("go").onclick = function(){
var SECRET_NUMBER;
var enteredByUser;
var numberOftry;
var hotCold = [];
var computerLose = false;
SECRET_NUMBER = Math.floor(Math.random() * 49 + 1);
numberOftry = parseInt(prompt('Компьютер:\n- Я загадал число [1..50]. Слабо отгадать?\n\nИгрок:\n- Вызов принят! Я отгадаю его за столько попыток:'));
hotCold[0] = SECRET_NUMBER;
enteredByUser = parseInt(prompt('Игрок:\n - Я думаю это:')); // Попытка сделать программу более живой.
if (enteredByUser === SECRET_NUMBER) {
winnMessage(); // Я думаю, что при первой попытке нужно выводить именно это, а не "тепло" / "холодно"
computerLose = true;
} else enteredByUser = parseInt(prompt('Компьютер:\n - Нет, попробуй еще:')); // Этот блок не обязателен
for (var i = 1; i < (numberOftry - 1); i += 1) { // (numberOftry-1) - так как 1 попытку я потратила выше в коде. (1), (2), (3) - Та же причина
if (enteredByUser === SECRET_NUMBER) {
winnMessage();
computerLose = true;
break;
} else {
hotCold[i] = Math.abs(SECRET_NUMBER - enteredByUser);
if (hotCold[i] > hotCold[i - 1]) enteredByUser = parseInt(prompt('Компьютер:\n- Холодно. Осталось ' + (numberOftry - i - 1) + ' попыток:')); // (1)
else enteredByUser = parseInt(prompt('Компьютер:\n- Тепло. Осталось ' + (numberOftry - i - 1) + ' попыток:')); // (2)
}
}
if (computerLose == false) {
alert('Компьютер:\n- Ха-ха! Торжество исскуственного интеллекта! Я загадывал ' + SECRET_NUMBER)
};
function winnMessage() {
alert('Компьютер:\n- Да! загаданое число: ' + SECRET_NUMBER + '\n- Ты справился за ' + (i + 1) + ' попыток'); //(3)
}
}