Javascript数字猜谜游戏



我似乎无法使此代码在找到正确答案时提醒用户,也无法使弹出窗口继续循环播放。我把这个编码成一个学习练习。在JS中我很新手。

有人可以检查我的代码并提供建设性的批评吗?

// noprotect
var targetNumber = Math.floor(Math.random() * 100 + 1);
var userGuess = prompt("Pick a number from 1 to 100 to guess which one I'm  thinking about!" + " (6 guesses left.)");

for (var i=5; i>0; i--) {
if (i === 0) {
    prompt("Out of guesses!" + " (" + i + " guesses left.)" + " My number was: " + targetNumber);
}
if (isNaN(userGuess) === true) {
    userGuess = prompt("That value was not a number! Please pick a number from 1 to 100 to guess which one I'm thinking about!" + " (" + i + " guesses left.)");
}
if (userGuess < 1 || userGuess > 100) {
    userGuess = prompt("That number was not between 1 and 100 inclusive! Please pick a number from 1 to 100 to guess which one I'm thinking about!" + " (" + i + " guesses left.)");
}
if (userGuess === targetNumber) {
    userGuess = alert("You're correct! My number was: " + targetNumber);
}
if (userGuess < targetNumber) {
    userGuess = prompt("You're too low, guess again" + " (" + i + " guesses left.)");
}
if (userGuess > targetNumber) {
    userGuess = prompt("You're too high, guess again!" + " (" + i + " guesses left.)");
}

}

您正在比较字符串值prompt()返回与使用===的数字。这是行不通的。

:

var userGuess = parseInt(prompt(...))

值得注意的是,prompt是一种非常笨拙的方式来做到这一点。更好的是创建一个表单,其中您有一个适当的<input>字段和放置响应的地方。

只是想在我下班回家之前补充一点。你的for循环永远不会允许i === 0条件通过,因为只有当i > 0时循环才会继续。您可能希望将其更改为i >= 0或在循环中调整您的条件。

最新更新