我正在尝试在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" /> - Enter a number from 1-999!</form>
<p><span style="background-color:#066aff; color: #ffffff; padding: 5px;" onclick="myFunction();" >enter number</span>
</p>
</body>
答案 0 :(得分:1)
此处您不需要while loop
。只要它进入while循环就会发生什么,它会使你的counter
增加到5。
取出while loop
,它会完成您想要的操作。
我认为你不需要totalGuesses
修改:
所以我进一步研究你的代码。为了做你想做的事情,而不是把所有内容都放在myFunction
中,以下是步骤:
创建random_number
创建counter
绑定到onclick
的函数,这是主逻辑所在的位置。这就是你需要做的事情。
Integer
random_number
counter
counter
达到限制,提醒并显示结果不打算写下代码,我想你可以搞清楚。