我目前正在用 JavaScript 重现康威的生命游戏,我注意到函数 Math.random() 总是返回某种模式。以下是 100x100 网格中的随机结果示例:
有谁知道如何获得更好的随机数?
ApplyRandom: function() {
var $this = Evolution;
var total = $this.Settings.grid_x * $this.Settings.grid_y;
var range = parseInt(total * ($this.Settings.randomPercentage / 100));
for(var i = 0; i < total; i++) {
$this.Infos.grid[i] = false;
}
for(var i = 0; i < range; i++) {
var random = Math.floor((Math.random() * total) + 1);
$this.Infos.grid[random] = true;
}
$this.PrintGrid();
},
[更新]
我在这里创建了一个 jsFiddle:http: //jsfiddle.net/5Xrs7/1/
[更新]
看来 Math.random() 毕竟没问题(感谢raina77ow)。对不起各位!:(。如果您对结果感兴趣,这里是游戏的更新版本:http: //jsfiddle.net/sAKFQ/
(但我认为还有一些错误......)