The exercise I'm doing is to write a guessing game.
It asks for you to write a function for the user to enter a guessed number, write a second function to validate the code, write a third function that checks the number and tells the user if it's too high or too low.
My problem is that when I get to the too high or too low part it stops validating whether the number is in between 1 and 100. I've tried everything that I know and I'm still really confused. The code worked otherwise before I put in the ValidNUm variable.
I feel like this could be an easy answer and I'm not getting it so I'm sorry. point is I need the guessing game to validate the number, if it's wrong they will enter a number till it is correct, then it tells them wether that validated number is too high or too low.
What happened before is that it validates the number but doesn't pass on the valid number to be assessed.
var GuessedNumber, RandomNum, ValidNum;
RandomNum = 24; //Math.floor((Math.random() * 100) + 1);
GuessedNumber = EnterGuess();
ValidNum = ValidateGuess(GuessedNumber);
NumberCheck(GuessedNumber, RandomNum, ValidNum);
function EnterGuess() {
var ArgGuessNum;
ArgGuessNum = parseFloat(prompt("Please guess a number between 1 and 100"));
return ArgGuessNum;
}
function ValidateGuess(ArgGuessNum) {
var ArgValidNum;
while (ArgGuessNum < 1 || ArgGuessNum > 100) {
ArgGuessNum = parseFloat(
prompt("Please guess a valid number between 1 and 100")
);
}
if (ArgGuessNum > 0 || ArgGuessNum < 100) {
ArgValidNum = ArgGuessNum;
return ArgValidNum;
}
alert("valid number");
}
function NumberCheck(ArgGuessNum, ArgRandomNum, ArgValidNum) {
var ctr = 1;
while (ArgValidNum != ArgRandomNum) {
if (ArgValidNum > ArgRandomNum) {
ArgGuessNum = parseFloat(
prompt("Uh-Oh the number is too high! enter another guess")
);
ValidateGuess(ArgGuessNum);
} else if (ArgValidNum < ArgRandomNum) {
ArgGuessNum = parseFloat(
prompt("Uh-Oh the number is too low! enter another guess")
);
ValidateGuess(ArgGuessNum);
}
ctr++;
}
alert("you took " + ctr + " guesses");
}