Python 中的随机噪声函数

Tan*_*ett 3 python random

我正在用 Python 编写一个游戏,其中的环境是随机生成的。目前,游戏的“保存”功能通过写出玩家探索过的环境的所有部分来工作。结果是保存文件比需要的大\xe2\x80\x94为什么要在可以再次生成数据时将随机数据写入磁盘?

\n\n

我可以使用的是随机噪声函数:一个返回随机数的函数,并且每当使用相同的 值调用时总是返回noise相同的数字。现在,对于游戏环境中的每个点,我可以使用 生成随机数,然后将其丢弃,然后生成相同的数字,而不是使用 生成随机数并将结果存储在 中。noise(x)x(x,y)random()env[(x,y)]noise((x,y))

\n

dbr*_*dbr 5

不太确定我是否在陈述显而易见的事情,但使用柏林噪声发生器的某些变体是实现此目的的常见方法。这篇文章很好地描述了这样做(正如评论中提到的,这不完全是柏林噪音

对于给定的位置,Perlin 函数将返回一个随机值(该位置可以是 2D、3D 或任何维度)。

有一个噪音模块,这个页面有它的实现

gamedev.SE上有一个类似的帖子

  • +1,这是在游戏中执行此操作的规范方法。此外,它比种子随机数或典型的哈希函数具有明显的优势,因为虽然输出有噪声,但它是连续的!连续性使其非常适合此类应用。(连续性要求是发明柏林噪声的一个关键动机) (2认同)