我正在制作一个roguelike,在一个程序生成的星球上,这个环境是开放的世界。我希望每个生物群系的分布都是有机的。有5种不同的生物群落。有没有办法在没有庞大复杂算法的情况下有机地分发它们?我希望每个生物群系占用的空间量几乎相等。
在我为每个生物群系制作地形生成器之前,我曾使用过细胞自动机。每个瓷砖有2种不同的状态。有没有一种有效的方法来做5?
我正在使用python 2.5,虽然没有必要使用特定的代码。关于它的编程理论很好。
如果这个问题太开放了,那么我有什么资源可以解决这类问题吗?
答案 0 :(得分:1)
您可以在任何单元格状态空间上定义元胞自动机。只需将单元格更新功能制定为F:Q^n->Q
,其中Q
是您的状态空间(此处为Q={0,1,2,3,4,5}
),n
是您所在社区的大小。
首先,只需将F写为多数规则,即0
为中立状态,F(c)
应返回1-5
中邻近地区最高计数的值,如果没有,则0
。如果相等,您可以随机选择一个最大值。
作为初始状态,从具有状态1-5
的5个相对等距单元的配置开始(您可以通过可以移位/镜像的固定位置确定性地构建它们,或者随机生成这些点)。 / p>
当所有单元格的值都不是0时,您就拥有了地图。
随意改进更新功能,例如通过应用具有给定概率的规则。