Flatdom,模拟文明的兴衰

古往今来,任何一个文明都不可避免地经历着一个过程,从最开始零散的部落开拓荒蛮之地,发展到广袤疆域,大城重镇的盛世,最终在天灾人祸战乱中衰落。Flatdom 的目的就是尽可能地去模拟这个过程。

Flatdom 是什么?

Flatdom 是一个二维的世界,由许多网格组成。上面生活的民众我们叫作 Flatone。每一个网格可以理解成一个地点,它可以是

Flatone 会一直尝试开辟无人居住的相邻网格,或者发展现有的定居点。Flatdom 上有诸多阵营,他们会为了网格,即是资源,而互相争斗开战。

Flatdom 发生了什么?

每一个网格都有一个 power index (权重)。它表示了这个定居点的发展程度或者这个无人之地被开辟的难度。

一个网格可以发生三种事件

一个网格每回合只能发生一种事件。会发生那一种事件取决于这个网格和它相邻网格的类型和 power index。

Flatdom 实现原理?

为了简化模拟,每一个周期(回合),模拟器都会依次遍历所有网格。网格发生的事件会依照概率生成。生成的概率遵循上面所讲的条件,并掺入了随机因子。当模拟器计算了所有网格事件后的状态,再统一进行更新。

下面的截图展示了一个对于 8x8 大小的 Flatdom 模拟。最开始我们只有两个阵营,零散地分布。

Flatdom at 0th iteration

经过一些回合,我们可以看到,

  1. 许多无人之地已经被定居;
  2. 大多数定居点已经发展到了顶点,有最大的 power index;
  3. 一些战争已经开始。甚至不少网格,因为被敌对阵营包围,已经易手;

Flatdom at 10th iteration