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

时间:2016-03-21 01:16:32

标签: javascript

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

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>

1 个答案:

答案 0 :(得分:1)

此处您不需要while loop。只要它进入while循环就会发生什么,它会使你的counter增加到5。

取出while loop,它会完成您想要的操作。

我认为你不需要totalGuesses

修改:

所以我进一步研究你的代码。为了做你想做的事情,而不是把所有内容都放在myFunction中,以下是步骤:

  1. 创建random_number

  2. 创建counter

  3. 绑定到onclick的函数,这是主逻辑所在的位置。这就是你需要做的事情。

    1. 从输入字段中获取输入结果,并将其解析为Integer
    2. 与存储的random_number
    3. 进行比较
    4. 如果正确,请提示
    5. 如果没有,请递增counter
    6. 如果counter达到限制,提醒并显示结果
  4. 不打算写下代码,我想你可以搞清楚。