我正在尝试用JavaScript编写一个简单的函数,该函数在(0,10)中生成随机值,并要求用户猜测这些数字。由于我是JavaScript新手,因此我编写了此代码,但无法正常工作。因此,我需要您的帮助以找出解决方法。
答案 0 :(得分:0)
您在Guessing
中的最后一个if语句检查计数器是否低于5。删除该语句,您就可以进行了。由于counter
被定义为全局变量,因此即使没有将其作为参数,在guessGame函数中也会增加它,并且一旦它等于5,您的代码就会停止执行。
如果您是一般编程人员的提示, 如果您的代码停止以神奇的值工作(在这种情况下为5
),那么搜索它总是一个好主意。在您的代码中使用 ctrl + f 。
评论后编辑:
您正在考虑将readInput作为阻止函数,并非如此。您的do ... while函数每次都会执行readInput,并从输入框中读取相同的值并将其处理为错误。要解决此问题,请删除Guessing函数,将readInput放入html中,并在readInput的末尾添加guessGame函数,在其中与随机数进行比较。首先尝试1个数字。
有趣的事实:即使猜测应该按照您的预期工作,它也会在每次单击时生成一组新的随机数,从而使游戏更加困难。
有1个数字,您的代码如下:
html:
Guess : <input type="text" id="nb"/> <input type="button" value="Check" onclick="readInput()"/>
javascript:
var ranval=generateRandom();
var counter=0;
function readInput(){
var input = parseInt(document.getElementById('nb').value);
if (counter<5){
guessGame(input);
}
counter++;
if (counter==5){
console.log("you lost")
}
}
function generateRandom(){
//the 3 random values to be used later
rand1 = Math.floor(Math.random() * 10) ;
ranval=rand1;
}
function guessGame(input){
if (ranval==input){
console.log("correct")
}
}