gpt4 book ai didi

javascript - JS : How to exclude a range of values whilst using Math. 随机()?

转载 作者:行者123 更新时间:2023-11-29 16:50:09 24 4
gpt4 key购买 nike

我正在为游戏中的玩家生成一些随机的 x 和 y 坐标:

var xcoordRed = Math.floor((Math.random() * 790) +1);
var ycoordRed = Math.floor((Math.random() * 400) +1);

但我需要从 xcoordRed 中排除范围 325 - 375ycoordRed 150 - 250

我将如何有效地执行此操作?

最佳答案

简单的数学运算,将随机调用的范围减少排除范围的差值,然后如果随机值大于下排除分隔符,则将其增加排除差值。含义:

var diff = 375 - 325; // add 1 if inclusive
var xcoordRed = Math.floor((Math.random() * (790 - diff)) +1);
if (xcoordRed >= 325)
xcoordRed += diff;

// the same approach goes for Y

这意味着,如果随机值是 324,它将保持 324。但是,如果是 330,它将变为 380,等等。当然,最大可能的随机数 740 将变为 790。


var r = document.getElementById('r');
function gen() {
var diffx = 375 - 325;
var diffy = 250 - 150;
var xcoordRed = Math.floor((Math.random() * (790 - diffx)) + 1);
if (xcoordRed >= 325)
xcoordRed += diffx;
var ycoordRed = Math.floor((Math.random() * (400 - diffy)) + 1);
if (ycoordRed >= 150)
ycoordRed += diffy;

r.textContent = 'X: ' + xcoordRed + ' Y: ' + ycoordRed;
}
<button onclick="gen()">Generate</button>
<div id="r"></div>

关于javascript - JS : How to exclude a range of values whilst using Math. 随机()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36810421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com