var check_guess = function (number, guess) { // Checks the guess against the number. Returns -1 if the guess is low, // 1 if the guess is high, or 0 if the guess is correct if (guess < number) return -1; if (guess > number) return 1; return 0; }; var check_input = function (input) { // Validates that the user's input is a number from 1 to 100. Returns // that number, or 0 if the input was not valid. var number = new Number(input); if (number == NaN) return 0; number = number.valueOf(); if ((number < 1) || (number > 100)) return 0; return Math.floor(number); }; var prompt_user = function () { // Prompts the user for a number between 1 and 100, and continues to do // so until a valid one has been entered. Returns said number. var number, user_input; do { user_input = prompt("Enter your guess (1 - 100):"); number = check_input(user_input); } while (number == 0); return number; }; var generate_number = function () { var random_number = Math.random(); random_number *= 100; return Math.floor(random_number + 1); }; var play_game = function () { var number = generate_number(); var guesses, check, this_guess = 0; for (guesses = 0; this_guess != number; guesses ++) { this_guess = prompt_user(); check = check_guess(number, this_guess); switch (check) { case -1: alert("Your guess was too low!"); break; case 1: alert("Your guess was too high!"); break; case 0: alert("YOU WIN!!!"); break; } } alert("It took you " + guesses + " guesses to get it right!"); } // main code follows var prompt_result; while (true) { prompt_result = prompt("Type 'start' to start, or anything else to quit"); if (prompt_result == "start") play_game(); else { alert("Bye bye!"); break; } }