我正在用 Python 编写一个随机生成环境的游戏。目前,游戏的“保存”功能是通过记录玩家探索过的所有环境部分来实现的。结果是保存文件比它们需要的要大——既然可以再次生成随机数据,为什么还要将其写入磁盘?
我可以使用的是一个随机噪声函数:一个函数 noise 这样 noise(x) 返回一个随机数,并且总是相同 数字,每当它被调用时具有相同的 x 值。现在,对于游戏环境中的每个点 (x,y),不是使用 random() 生成随机数并将结果存储在 env[( x,y)],我可以使用 noise((x,y)) 生成随机数,将其丢弃,稍后生成相同的数字。
请您参考如下方法:
不太确定我说的是否显而易见,但使用 Perlin 噪声发生器的一些变体是实现此目的的常用方法。 This post是对执行此操作的很好描述(如评论中所述,它是 not exactly Perlin noise )
对于给定的位置,Perlin 函数将返回一个随机值(位置可以是 2D、3D 或任何维度)。
gamedev.SE 上有类似的话题
