如何在AS3中以相同的机会制作一个真正的随机?

POG*_*OGI 2 javascript random flash flashdevelop actionscript-3

我正在开发一种摇滚纸剪刀游戏机与电脑.除了每场比赛3轮比赛之外,没有什么特别之处.

我正在使用此代码生成从1到3的随机数

Math.floor(Math.random()*(1+3-1))+1
Run Code Online (Sandbox Code Playgroud)

1 =剪刀,2 =纸,3 =摇滚

我不确定,但这个代码对2号有利.

意味着计算机生成纸 - 纸 - 纸,所以玩家注意到并利用优势并选择剪刀 - 剪刀 - 剪刀.我打赌你也会这样做.

如何在AS3中生成真正的随机性?

lau*_*ent 5

你的代码是正确的,虽然它可以简化为Math.floor(Math.random()*3) + 1.这将返回1到3之间的数字,并且分布应该是统一的(除非Flash播放器中存在大错误).

您可以通过循环数字并计算每个数字的出现来验证这一点.例如:

var count = [0,0,0];
for (var i = 0; i < 10000; i++) {
    var n = Math.floor(Math.random()*3) + 1;
    count[n-1]++;
}

trace(count);
Run Code Online (Sandbox Code Playgroud)