我到处找过,但没有找到确切的答案。我正在AS3制作一个游戏。我没有问题为我的游戏生成随机地图(2D瓷砖),它基本上是由随机数组成的。如何在将种子参数传递给函数时始终获得完全相同的结果?
function generate(__xt:uint, __yt:uint){
var rnd:int;
for (var i:uint=0; i < __xt; i++){
for(var j:uint=0; j < __yt; j++){
rnd = Math.round(Math.random());
...
}
}
}发布于 2014-03-12 13:33:08
是的,Math.random()不支持种子,如果您需要它,您必须实现自己的PRNG。看看这个JS的答案JS,很容易将其中一个答案移植到as3。
发布于 2014-03-12 13:33:41
格兰特·斯金纳开发了大型图书馆用于生成随机数,我推荐给使用它,而不是Math.random()
..。我决定建立一个类来生成基于种子数的随机数。这也是方便的其他用途,如统计,测试,和游戏开发(例如。同步或重播游戏)。这很简单,因为Flash已经有了一种基于隐藏在APIs BitmapData.noise()中的种子生成一系列随机数的机制。
https://stackoverflow.com/questions/22352386
复制相似问题