我正在用Python编写游戏,其中环境是随机生成的。当前,游戏的“保存”功能通过写出玩家已经探索过的环境的所有部分而起作用。结果是保存文件的大小超出了所需的大小—为什么当您仅能再次生成随机数据时,为什么将随机数据写入磁盘?
我可以使用的是随机噪声函数:函数noise
,使得noise(x)
返回一个随机数,并且每次以相同的x
值调用该函数时,总是返回相同的数字。现在,对于游戏环境中的每个点(x,y)
,无需使用random()
生成随机数并将结果存储在env[(x,y)]
中,我可以使用noise((x,y))
生成随机数,将其丢弃并生成以后再打一样的号码。
最佳答案
不确定我是否要说清楚,但使用Perlin噪声发生器的某些变体是实现此目的的常用方法。 This post是对完成此操作的很好描述(如注释中所述,它为not exactly Perlin noise)
对于给定的位置,Perlin函数将返回一个随机值(该位置可以是2D,3D或任何尺寸)。
有一个noise模块,而this page具有它的实现
gamedev.SE上有一个类似的线程
关于python - Python中的随机噪声函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12945387/