我正在做一个罗格利克,其中设置是开放的世界,在一个程序上产生的行星。我希望每个生物群落的分布都是有机的。有5种不同的生物群落。有没有一种不需要庞大复杂算法就能有机地分发它们的方法?我希望每个生物群落所占的空间几乎相等。
当我为每个生物群落制作地形发生器时,我曾经使用过元胞自动机。每个瓷砖有两个不同的状态。有有效的方法来做5吗?
我使用python2.5,尽管没有必要使用特定的代码。关于它的编程理论是很好的。
如果问题过于开放,是否有资源可供我研究这类问题呢?
发布于 2017-04-04 09:50:31
您可以在任何单元格状态空间上定义元胞自动机。只需将单元格更新函数表示为F:Q^n->Q,其中Q是您的状态空间(此处为Q={0,1,2,3,4,5}),而n是您的邻居的大小。
首先,只需写F作为多数规则,即0是中立状态,F(c)应该返回1-5中的值,其计数在邻域中最高,如果不存在,则返回0。在平等的情况下,你可以随机选择其中的一个最大值。
作为初始状态,首先配置状态为1-5的5个相对等距的单元格(您可以通过可以移动/镜像的固定位置确定地构建它们,或者随机生成这些点)。
当所有单元格的值都与0不同时,就有了映射。
可以随意地改进更新函数,例如,以给定的概率应用规则。
https://stackoverflow.com/questions/43057477
复制相似问题