Javascript猜测游戏-计数器不工作
我正在尝试创建一个Javascript猜测游戏,其中用户有10次尝试猜测1-999之间的数字。我必须使用一个验证数字的方法,使用一个循环并在用户获得匹配项时显示警报,以及当他们猜不到时显示警报。使用数字45只是为了测试。应使用innerHTML对每个猜测进行编号和显示。问题是,计数器卡在零位。不知道我错过了什么!代码如下:Javascript猜测游戏-计数器不工作,javascript,Javascript,我正在尝试创建一个Javascript猜测游戏,其中用户有10次尝试猜测1-999之间的数字。我必须使用一个验证数字的方法,使用一个循环并在用户获得匹配项时显示警报,以及当他们猜不到时显示警报。使用数字45只是为了测试。应使用innerHTML对每个猜测进行编号和显示。问题是,计数器卡在零位。不知道我错过了什么!代码如下: function myFunction() { var userInput = document.getElementById("input").value; var
function myFunction() {
var userInput = document.getElementById("input").value;
var randomNum = 45;
// test for valid input number from 1 to 999
if (userInput < 0 || userInput > 999) {
alert("Your number must be from 1 to 999");
} else {
alert("Input OK");
}
var counter = 0;
while (counter < 10) {
counter++;
if (userInput == randomNum) {
alert("You win!");
}
if (userInput > randomNum) {
document.getElementById("loopResults").innerHTML += counter + "." + " Your answer: " + userInput + "." + " Guess lower! < br / > ";
alert("You have " + counter + " guesses left.");
} else if (userInput < randomNum) {
document.getElementById("loopResults").innerHTML += counter + "." + " Your answer: " + userInput + "." + "Guess higher! < br / > ";
alert("You have " + counter + " guesses left.");
}
break;
} // end while loop
} // end function myFunction()
函数myFunction(){
var userInput=document.getElementById(“输入”).value;
var-randomNum=45;
//测试1到999之间的有效输入号码
如果(用户输入<0 | |用户输入>999){
警报(“您的号码必须在1到999之间”);
}否则{
警报(“输入正常”);
}
var计数器=0;
while(计数器<10){
计数器++;
if(userInput==randomNum){
警惕(“你赢了!”);
}
如果(用户输入>随机数){
document.getElementById(“loopResults”).innerHTML+=counter++“您的答案:“+userInput++”猜得更低!
”;
警惕(“你还有“+计数器+”猜测。”);
}else if(用户输入<随机数){
document.getElementById(“loopResults”).innerHTML+=counter++“您的答案:“+userInput++”猜得更高!
”;
警惕(“你还有“+计数器+”猜测。”);
}
打破
}//在循环结束时结束
}//结束函数myFunction()
逐步完成while循环中的逻辑
每个循环中递增的计数器变量将已经导致循环退出
在while循环结束时设置“break”意味着您保证在while循环中的逻辑执行第一步后退出 每个循环中递增的计数器变量将已经导致循环退出
在while循环结束时设置一个“break”意味着您保证在第一次循环结束后退出,只有当您真正想退出循环时才退出循环。在您的情况下,这可能是当用户猜到数字或尝试不足时
break
命令立即结束循环。查看更多信息 只有当您真正想退出循环时才将其打断。在您的情况下,这可能是当用户猜到数字或尝试不足时
break
命令立即结束循环。查看更多信息 这条线
var counter = 0;
每次调用函数时将计数器重置为0。一种修复方法是以这种方式将其设置为全局变量
counter = 0; // note no var keyword
function myFunction() {...}
然后,对函数中计数器的调用将引用全局变量
此外,您的while循环没有意义。它应该是一个简单的if语句,以查看计数器>=10。正确设置计数器变量后再考虑此逻辑。此行
var counter = 0;
每次调用函数时将计数器重置为0。一种修复方法是以这种方式将其设置为全局变量
counter = 0; // note no var keyword
function myFunction() {...}
然后,对函数中计数器的调用将引用全局变量
此外,您的while循环没有意义。它应该是一个简单的if语句,以查看计数器>=10。在正确设置计数器变量后考虑此逻辑。
break
结束while
循环。始终应该考虑将其放在何处/将中断放在末尾的else中。中断不是最大的问题,函数作用域中的计数器变量是。break
endswhile
loop。你总是应该考虑把它放在哪里/把中断放在最后的一个else中。中断不是最大的问题,函数作用域的计数器变量才是。谢谢!这有助于使计数器朝着正确的方向移动。谢谢!这有助于使计数器朝着正确的方向移动。谢谢!问你一个问题……我在最后加上了休息时间,因为否则,所有的警报都会一个接一个地弹出,不会停下来再猜一次。不知道如何让它重新开始?您可能希望为用户嵌入另一个机会来输入猜测,以便您可以重新检查条件。我想如果你还有猜测,检查他们是否猜对了,如果没有,告诉他们还有多少猜测,并再次提示他们交替输入一个数字,你可以在没有while循环的情况下分离游戏逻辑。输入猜测后,检查计数器变量和增量。有一个条件,如果他们达到计数器限制,你就告诉他们他们损失了TBTW。如果这有帮助,我将感谢你标记为已解决:)当然!只需找出在何处执行此操作…此网站仍然是新网站。:)谢谢谢谢问你一个问题……我在最后加上了休息时间,因为否则,所有的警报都会一个接一个地弹出,不会停下来再猜一次。不知道如何让它重新开始?您可能希望为用户嵌入另一个机会来输入猜测,以便您可以重新检查条件。我想如果你还有猜测,检查他们是否猜对了,如果没有,告诉他们还有多少猜测,并再次提示他们交替输入一个数字,你可以在没有while循环的情况下分离游戏逻辑。输入猜测后,检查计数器变量和增量。有一个条件,如果他们达到计数器限制,你就告诉他们他们损失了TBTW。如果这有帮助,我将感谢你标记为已解决:)当然!只需找出在何处执行此操作…此网站仍然是新网站。:)谢谢