随机数不在范围内javascript

托马斯·多布罗沃尔斯基

我做了一个随机数猜谜游戏。用户必须设置可以生成随机数的最小和最大范围,并且他们获得的尝试次数取决于他们设置的范围的大小。因此,如果用户输入最小值 1 和最大值 100,则范围将除以 10 并四舍五入,以便用户尝试猜测数字 10 次。

我的问题是生成的随机数总是超出设定范围,我不知道为什么。

我的javascript代码:

winner = "Well done, you guessed the number correctly";
loser = "Unfortunately you did not guess the number correctly. Game Over!";
higher = "Your guess was too low. Guess higher";
alreadyWon = "You have already guessed correctly. Press f5 to play again";
lower = "Your guess was too high. Guess lower";
gameWon = false;
counter = 0;

function processingFunction(minRange, maxRange) {
  randomNo = Math.floor(Math.random() * (maxRange - minRange)) + minRange; //random number generated
  attempts = Math.round((maxRange - minRange) / 10); //number of attempts generated
  return (randomNo, attempts);
}

function showFunction(guess) {

  if (gameWon == true) {
    document.getElementById("output1").innerHTML = alreadyWon;
  } else if (counter < attempts) {
    if (guess == randomNo) {
      document.getElementById("output1").innerHTML = winner;
      gameWon = true;
    } else if (guess > randomNo) {
      document.getElementById("output1").innerHTML = lower;
    } else {
      document.getElementById("output1").innerHTML = higher;
    }
    counter++;
  } else {
    document.getElementById("output1").innerHTML = loser;
  }
}
<center>
  <h2>Random Number Guess</h2>
</center>
<h3>Enter in the minimum range and the maximum range. Accompanied by your first guess</h3>
Minimum Range:<input type="text" id="inputMinRange"></input> Maximum Range:<input type="text" id="inputMaxRange"></input>
<button type="button" onclick="processingFunction(document.getElementById('inputMinRange').value, document.getElementById('inputMaxRange').value)">Set Range</button>
<br><br>
<input type="text" id="guessInput"></input>
<button type="button" onclick="showFunction(document.getElementById('guessInput').value)">Guess</button>
<pre type="text" id="output1"></pre>

TJ克劳德

valueinput总是一个字符串,当您使用+其中一个操作数是一个字符串,你得到的字符串连接,而不是加法。-将强制转换为数字,但+不会。)所以说我们填写 1 和 100。这个:

randomNo = Math.floor(Math.random() * (maxRange - minRange)) + minRange; //random number generated

...获取maxRange - minRange并获得 99(到目前为止很好),将其乘以一个随机值以获得(例如)83,然后附加 "1"到它以获得"831".

您希望在将这些值输入函数之前将它们转换为数字。有很多方法可以做到这一点(有关它们的概述,请参阅此答案,但例如,一元+

<button type="button" onclick="processingFunction(+document.getElementById('inputMinRange').value, +document.getElementById('inputMaxRange').value)">Set Range</button>
<!-- ---------------------------------------------^------------------------------------------------^                                -->

现在该函数一直在处理数字。

更新的代码段:

winner = "Well done, you guessed the number correctly";
loser = "Unfortunately you did not guess the number correctly. Game Over!";
higher = "Your guess was too low. Guess higher";
alreadyWon = "You have already guessed correctly. Press f5 to play again";
lower = "Your guess was too high. Guess lower";
gameWon = false;
counter = 0;

function processingFunction(minRange, maxRange) {
  randomNo = Math.floor(Math.random() * (maxRange - minRange)) + minRange; //random number generated
  attempts = Math.round((maxRange - minRange) / 10); //number of attempts generated
console.log(minRange, maxRange, randomNo, attempts);
  return (randomNo, attempts);
}

function showFunction(guess) {

  if (gameWon == true) {
    document.getElementById("output1").innerHTML = alreadyWon;
  } else if (counter < attempts) {
    if (guess == randomNo) {
      document.getElementById("output1").innerHTML = winner;
      gameWon = true;
    } else if (guess > randomNo) {
      document.getElementById("output1").innerHTML = lower;
    } else {
      document.getElementById("output1").innerHTML = higher;
    }
    counter++;
  } else {
    document.getElementById("output1").innerHTML = loser;
  }
}
<center>
  <h2>Random Number Guess</h2>
</center>
<h3>Enter in the minimum range and the maximum range. Accompanied by your first guess</h3>
Minimum Range:<input type="text" id="inputMinRange"></input> Maximum Range:<input type="text" id="inputMaxRange"></input>
<button type="button" onclick="processingFunction(+document.getElementById('inputMinRange').value, +document.getElementById('inputMaxRange').value)">Set Range</button>
<br><br>
<input type="text" id="guessInput"></input>
<button type="button" onclick="showFunction(document.getElementById('guessInput').value)">Guess</button>
<pre type="text" id="output1"></pre>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

范围内的随机数生成

来自分类Dev

生成特定范围内的随机数

来自分类Dev

如何获取julia范围内的BigInt随机数?

来自分类Dev

排除零范围内的随机数

来自分类Dev

生成特定范围内的密码随机数

来自分类Dev

JS Math setinterval范围内的随机数

来自分类Dev

生成特定范围内的随机数

来自分类Dev

1-20范围内的最大随机数

来自分类Dev

C#选择范围内的随机数

来自分类Dev

如何获取julia范围内的BigInt随机数?

来自分类Dev

使用SecRandomCopyBytes生成范围内的随机数

来自分类Dev

如何在D范围内生成随机数

来自分类Dev

如何在多个范围内生成随机数

来自分类Dev

生成指定范围内的随机数

来自分类Dev

如何通过javascript在很大范围内生成随机数?

来自分类Dev

Javascript:使用crypto.getRandomValues生成一定范围内的随机数

来自分类Dev

如何通过javascript在很大范围内生成随机数?

来自分类Dev

如何在javascript中-0.8到0.8范围内随机数?

来自分类Dev

如何创建范围内的随机数的简单分布图(java或javascript)

来自分类Dev

如何生成加起来等于一定数字并在JavaScript范围内生成的随机数?

来自分类Dev

范围中间没有确定数字的范围内的随机数

来自分类Dev

范围内的随机数(每次运行后范围都会变化)

来自分类Dev

如何使用最少的位生成任意范围内的无偏随机数

来自分类Dev

在Java中生成特定范围内的十进制随机数?

来自分类Dev

使用给定范围内的随机数初始化矩阵-Python

来自分类Dev

生成范围内的随机数,而无需指定数字

来自分类Dev

如何在Python中使用pareto分布在指定范围内生成随机数

来自分类Dev

如何在命令行中获取一定范围内的随机数?

来自分类Dev

Java:固定范围内的随机数,不包括指定数

Related 相关文章

  1. 1

    范围内的随机数生成

  2. 2

    生成特定范围内的随机数

  3. 3

    如何获取julia范围内的BigInt随机数?

  4. 4

    排除零范围内的随机数

  5. 5

    生成特定范围内的密码随机数

  6. 6

    JS Math setinterval范围内的随机数

  7. 7

    生成特定范围内的随机数

  8. 8

    1-20范围内的最大随机数

  9. 9

    C#选择范围内的随机数

  10. 10

    如何获取julia范围内的BigInt随机数?

  11. 11

    使用SecRandomCopyBytes生成范围内的随机数

  12. 12

    如何在D范围内生成随机数

  13. 13

    如何在多个范围内生成随机数

  14. 14

    生成指定范围内的随机数

  15. 15

    如何通过javascript在很大范围内生成随机数?

  16. 16

    Javascript:使用crypto.getRandomValues生成一定范围内的随机数

  17. 17

    如何通过javascript在很大范围内生成随机数?

  18. 18

    如何在javascript中-0.8到0.8范围内随机数?

  19. 19

    如何创建范围内的随机数的简单分布图(java或javascript)

  20. 20

    如何生成加起来等于一定数字并在JavaScript范围内生成的随机数?

  21. 21

    范围中间没有确定数字的范围内的随机数

  22. 22

    范围内的随机数(每次运行后范围都会变化)

  23. 23

    如何使用最少的位生成任意范围内的无偏随机数

  24. 24

    在Java中生成特定范围内的十进制随机数?

  25. 25

    使用给定范围内的随机数初始化矩阵-Python

  26. 26

    生成范围内的随机数,而无需指定数字

  27. 27

    如何在Python中使用pareto分布在指定范围内生成随机数

  28. 28

    如何在命令行中获取一定范围内的随机数?

  29. 29

    Java:固定范围内的随机数,不包括指定数

热门标签

归档