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

标签 javascript

我正在尝试用 Javascript 创建一个随机数猜测游戏,将用户输入与 math.random 方法生成的数字进行比较。我对如何正确设置计数器感到困惑。我必须验证这个数字,用“太高”、“太低”或“你赢了”来显示每个猜测,然后在最后显示“ secret ”数字。不知道我做错了什么!现在它正在覆盖每个答案,并且计数器停留在#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>

最佳答案

这里不需要 while 循环。所发生的情况只是一旦进入 while 循环,它就会将您的 counter 增加到 5。

去掉while循环,它就会做你想做的事。

而且我认为您不需要 totalGuesses

编辑:

所以我进一步研究了你的代码。为了执行您希望它执行的操作,而不是将所有内容都放入 myFunction 中,请执行以下步骤:

  1. 创建一个random_number

  2. 创建一个计数器

  3. 绑定(bind)到onclick的函数,这是主要逻辑所在。这就是您需要做的。

    1. 从输入字段中获取输入结果,并解析为Integer
    2. 与存储的random_number进行比较
    3. 如果正确,则提醒确定
    4. 如果没有,则增加计数器
    5. 如果计数器达到限制,发出警报并显示结果

不会写出代码,我想你可以弄清楚。

关于Javascript 猜数字游戏 - 设置计数器和 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121697/

相关文章:

javascript - 为什么光滑的 slider 在循环的第二次迭代中刷新 slider 项的 css

javascript - ECMA-262 严格模式下是否允许 '\0' 后跟字符串中的十进制数字?

javascript - 将 Picker 绑定(bind)到 React Native 中的 Picker.Item 列表

javascript - 何时使用 .val() 与 attr()

javascript - 如何修复这个 ng-class 切换比较?

javascript - 在按钮上单击显示特定元素

javascript - 如何在 React 执行时禁用点击事件?

javascript - 更改 css 链接并等待新的 css 加载

javascript - 表格自动 TR 计数

javascript - 使用纯 JavaScript 创建对此 HTML 元素的引用的最有效方法是什么?