Угадайка v2

by LuckyCat

JavaScript

var robotNumber = 1 + Math.floor( Math.random() * (50+1-1) );
console.log("Робот загадал: " + robotNumber);

var MAX_GUESSES = 5; // максимальное допустимое число попыток.
var userInput;       // число, которое ввел
var userNumber;      // число пользователя
var userAttems = 0;  // количество попыток, которые уже сделал юзер
var userWin = false;
var userLosing = false;
var userCancel = false; // если нажал на отмену, крестик
var prevNum;
var currentNum;
var promptText = "Enter number:";
do {
    userInput = prompt(promptText);
    if (userInput === null) {
        userCancel = true;
        console.log(userCancel);
        break;
    }
    userNumber = parseInt(userInput.trim(), 10); //преобразование строки с вырезанными пробельными символами с её концов
    userAttems += 1;
    currentNum = Math.abs(robotNumber - userNumber);
    console.log("Текущее число: " + currentNum);
    
    if (currentNum === 0) {
        userWin = true;
    }
    else if (currentNum <= prevNum)
    {
        promptText = "Теплее";
    }
    else {
        promptText = "Холоднее";
    }
    prevNum = currentNum;
} while (!userWin && !userCancel && (userAttems < MAX_GUESSES));

// Функция для склонения числительных, честно стырена с инета))
// http://htmler.ru/2013/11/22/sklonenie-chislitelnah-na-javascript/
function num2str(n, text_forms) {
    n = Math.abs(n) % 100;
    var n1 = n % 10;
    if (n > 10 && n < 20) {
        return text_forms[2];
    }
    if (n1 > 1 && n1 < 5) {
        return text_forms[1];
    }
    if (n1 == 1) {
        return text_forms[0];
    }
    return text_forms[2];
}

if (userWin === true) {
    alert("Победа! За " + userAttems + ' ' + num2str(userAttems, ['попытку', 'попытки', 'попыток']));
} else if (userCancel) {
    alert("Ты сдался!");
}
else {
    alert("Ты проиграл.");
}