我正在用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/

10-14 14:10
查看更多