我正在尝试用 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" /> - 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
中,请执行以下步骤:
创建一个
random_number
创建一个
计数器
绑定(bind)到
onclick
的函数,这是主要逻辑所在。这就是您需要做的。- 从输入字段中获取输入结果,并解析为
Integer
- 与存储的
random_number
进行比较 - 如果正确,则提醒确定
- 如果没有,则增加
计数器
- 如果
计数器
达到限制,发出警报并显示结果
- 从输入字段中获取输入结果,并解析为
不会写出代码,我想你可以弄清楚。
关于Javascript 猜数字游戏 - 设置计数器和 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121697/