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;
}
}
Comments