我在这个随机数生成器中遗漏了什么

时间:2016-05-21 00:31:35

标签: javascript

我正在尝试创建一个非常简单的javascript,要求用户选择1到10,000之间的数字。然后,计算机应该尝试猜测该数字并显示正确猜测所需的尝试次数。

但是,当我运行它时,它不会提示用户或显示任何尝试。我可能错过了一些明显而清晰的东西。有人能给我一些见解吗?

ACE_TCHAR

1 个答案:

答案 0 :(得分:0)

您似乎通过几个不同的名称来调用用户输入的数字。当您获取用户输入时,请将其称为userPick,但在while循环和输出中,您将计算机生成的数字与randomNumber而不是userPick进行比较。

为防止代码在用户输入任何内容时运行,while循环和输出应围绕NaN进行检查。

以下是更新后的代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Guess the Number</title>
  <link rel="stylesheet" href="css/styles.css">
</head>
<body>
    <h1>Test</h1>
    <script>
var upper = 10000;
var userPick = parseInt(prompt('Pick a number between 1 and 10,000'))
var computerGuess = getRandomNumber(upper);
var attempts = 0;

function getRandomNumber(upper) {
    return Math.floor(Math.random()*upper) + 1;
}

if(!isNaN(userPick)) {
  while(computerGuess !== userPick){
    attempts+=1;
    computerGuess = getRandomNumber(upper);
  }

  document.write('<p>Your number was ' + userPick + '. The computer guessed this number after ' + attempts + ' attempts.</p>')  
} else {
  document.write('<p>Invalid Input</p>')
}

        </script>
    </body>
    </html>

以下是以1-25:http://plnkr.co/edit/57iloqjWFQPifPluFkBu?p=preview

运行的示例