如何在 AS3 中以均等的机会制作真正的随机数?

How to make a True Random with equal chance in AS3?

我正在开发一款石头剪刀布游戏玩家对战电脑。除了玩家每场比赛玩 3 轮外,没有什么特别的。

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

Math.floor(Math.random()*(1+3-1))+1

1 = 剪刀,2 = 布,3 = 石头

我不确定,但此代码支持数字 2。

意味着计算机生成 Paper-Paper-Paper 所以玩家会注意到它并利用它 select scissor-scissor-scissor。我打赌你也会这样做。

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

您的代码是正确的,尽管它可以简化为 Math.floor(Math.random()*3) + 1。这将 return 介于 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);