跳到主要内容

生命游戏:局部规则与涌现图案

打开生命游戏。每个格子只有生、死两种状态,却能组成不动的方块、来回变化的振荡器和移动的滑翔机。这里采用 Conway 的 B3/S23 规则;Golly 的规则说明解释了 B(出生)与 S(存活)的记法。

先试三个图案

暂停并清空画布,用点击或拖动添加活细胞;勾选擦除后,拖动会清除细胞。也可聚焦画布,用方向键定位,按 Enter 或空格绘制。

  • 画一个 2×22\times2 的实心方块,单步后应保持不变。
  • 画三个水平相邻的细胞,单步后变成竖排,再一步恢复横排。
  • 点击“加入滑翔机”,连续走四代,图案会沿对角线移动一个格子。按钮使用当前光标位置。

重置恢复预设种子;清空只移除活细胞,不会自动暂停正在运行的模拟。

一代如何更新

每个格子统计周围八个邻居。死格恰好有三个活邻居时出生;活格有两个或三个活邻居时存活,其余情况死亡。所有判断都读取旧网格,写入新网格,再整体交换。若边扫描边修改同一个网格,后面的格子会读到已经更新的邻居,结果就不再是这一规则。

本站使用 64×4464\times44 网格,左右及上下边缘相接,相当于环面。因此从右侧移出的图案会从左侧回来,也可能与先前留下的图案相撞。这里不是无限平面。

时间与绘制

模型每六次仿真更新推进一代,正常播放目标约为每秒十代。“单步”也执行六次更新,因此恰好推进一代,与画面刷新率分开。Canvas 2D 只绘制活细胞和网格线。

纯模型函数的测试检查方块保持稳定、滑翔机四代后平移。它们验证规则实现,不意味着任意种子都能产生有趣的长期结构。若想比较连续浓度与离散细胞的区别,可接着看 反应扩散

探索关联打开关联网络