Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript数字猜测游戏-设置计数器&;while循环_Javascript - Fatal编程技术网

Javascript数字猜测游戏-设置计数器&;while循环

Javascript数字猜测游戏-设置计数器&;while循环,javascript,Javascript,我试图用Javascript创建一个随机数字猜测游戏,将用户输入与math.random方法生成的数字进行比较。我对如何正确设置柜台感到困惑。我必须验证数字,用“太高”、“太低”或“你赢了”来显示每个猜测,然后在最后显示“秘密”数字。不知道我做错了什么!现在它正在覆盖每个答案,计数器保持在#5 函数myFunction(){ var userInput=document.getElementById(“text”).value; //测试1到999之间的有效输入号码 如果(用户输入999){ 警

我试图用Javascript创建一个随机数字猜测游戏,将用户输入与math.random方法生成的数字进行比较。我对如何正确设置柜台感到困惑。我必须验证数字,用“太高”、“太低”或“你赢了”来显示每个猜测,然后在最后显示“秘密”数字。不知道我做错了什么!现在它正在覆盖每个答案,计数器保持在#5

函数myFunction(){
var userInput=document.getElementById(“text”).value;
//测试1到999之间的有效输入号码
如果(用户输入<0 | |用户输入>999){
警报(“您的号码必须在1到999之间”);
}否则{
警报(“输入正常”);
}//结束函数myFunction
var randomNum=Math.floor(Math.random()*999)+1;
var userInput=document.getElementById(“text”).value;
var计数器=0;
var totalGuesses=0;

while(totalguesss这里不需要
while循环
。只要它进入while循环,它就会将
计数器
增加到5

while循环
取出,它将执行您希望它执行的操作

我认为您不需要
totalGuesses

编辑:

因此,我进一步研究了您的代码。为了实现您希望它实现的功能,请不要将所有内容都放在
myFunction
中,以下是步骤:

  • 创建一个
    随机数

  • 创建一个
    计数器

  • 一个绑定到onclick
  • 的函数,这是主要逻辑所在。下面是您需要做的

  • 从输入字段获取输入结果,并将其解析为
    Integer
  • 与存储的
    随机数比较
  • 如果正确,警报正常
  • 如果不是,则增加
    计数器
  • 如果
    计数器
    达到极限,则发出警报并显示结果

  • 我不打算写下代码,我想你会明白的。

    为什么你同时有
    计数器
    总猜测
    变量?看起来你会有一个无休止的循环,因为你永远不会增加
    总猜测
    。你也永远不会测试当前猜测是否正确,你只会检查它是否太低或其他e假设它太高了。而且用户从来没有机会改变他们的猜测。问题是你的
    while循环
    不依赖于点击事件,所以它一直在运行。你应该把
    计数器++;
    总猜测+
    放在点击处理程序中,检查
    总猜测
    不高于5我认为t这正是我感到困惑的地方……这可能是TotalGuesss++。这太让我不知所措了。:)啊,好吧……谢谢!它正在下降——当你说在单击处理程序内部时,你是指onclick=“myFunction(counter++”)?
    function myFunction() {
        var userInput = document.getElementById("text").value;
        // 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");
        } // end function myFunction
    
        var randomNum = Math.floor(Math.random()* 999)+1;
        var userInput = document.getElementById("text").value;
        var counter = 0;
        var totalGuesses = 0;
        while (totalGuesses <= 5) {
          counter++;
          document.getElementById('loopResults').innerHTML = "<p>You have made" + counter + "guesses</p>";
          if (userInput < randomNum) {
              document.getElementById('loopResults').innerHTML += "<p>Your guess is too low!</p>";
          } else {
              document.getElementById('loopResults').innerHTML += "<p>Your guess is too high!</p>";
          } 
       }
    }
    </script>
    </head>
    
    
    <body>
    <h1>Guessing Game</h1>
    <p id="loopResults"></p>
    <form action="" method="post" enctype="multipart/form-data" name="userData">
        <input name="userInput" id="text" type="text" size="10" /> - &nbsp;Enter a number from 1-999!</form>
        <p><span style="background-color:#066aff; color: #ffffff; padding: 5px;" onclick="myFunction();" >enter number</span>
    </p>
    </body>