[英]I'm writing a guessing game in javascript. I don't know how to validate that the number is inbetween 0 and 100 through the code
我正在做的练习是写一个猜谜游戏。
它要求您编写一个函数让用户输入猜测的数字,编写第二个函数来验证代码,编写第三个函数来检查数字并告诉用户它是太高还是太低。
我的问题是,当我到达太高或太低的部分时,它会停止验证数字是否在 1 到 100 之间。我已经尝试了我所知道的一切,但我仍然很困惑。 在我放入 ValidNUM 变量之前,代码以其他方式工作。
我觉得这可能是一个简单的答案,但我不明白,所以很抱歉。 重点是我需要猜谜游戏来验证数字,如果错误,他们将输入一个数字直到正确为止,然后它会告诉他们验证的数字太高或太低。
之前发生的事情是它验证了数字,但没有传递要评估的有效数字。
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");
}
当您在NumberCheck(...)
验证猜测的数字时,您不会将结果“有效”数字分配回变量(因此在循环的下一次迭代中永远不会考虑它。
您需要添加类似ArgValidNum = ValidateGuess(ArgValidNum);
我还简化了NumberCheck(...)
因为您只比较两个数字:猜测的数字和开始时“随机”创建的数字。
见下面的演示代码
var GuessedNumber, RandomNum, ValidNum; RandomNum = 24; //Math.floor((Math.random() * 100) + 1); GuessedNumber = EnterGuess(); ValidNum = ValidateGuess(GuessedNumber); NumberCheck(RandomNum, ValidNum); function EnterGuess() { return parseFloat(prompt("Please guess a number between 1 and 100")); } 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; } console.log("valid number"); } function NumberCheck(ArgRandomNum, ArgValidNum) { var ctr = 1; while (ArgValidNum !== ArgRandomNum) { if (ArgValidNum > ArgRandomNum) { ArgValidNum = parseFloat( prompt("Uh-Oh the number is too high! enter another guess") ); ArgValidNum = ValidateGuess(ArgValidNum); } else if (ArgValidNum < ArgRandomNum) { ArgValidNum = parseFloat( prompt("Uh-Oh the number is too low! enter another guess") ); ArgValidNum = ValidateGuess(ArgValidNum); } ctr++; } alert("you took " + ctr + " guesses"); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.