一、规则介绍
游戏的世界是一个 无限二维网格,其中每个细胞(Cell) 处于以下 两种状态 之一:
- 🟩 活细胞(Alive)
- ⬜ 死细胞(Dead)
每个细胞与其 8 个邻居 交互(上下、左右、四个对角线)。
在每个时间步(tick),所有细胞同时更新状态,规则如下:
四大规则
1️⃣ 任何活细胞(Alive)少于两个活邻居会死亡(模拟人口稀少)
2️⃣ 任何活细胞有两个或三个活邻居会继续存活(模拟正常繁衍)
3️⃣ 任何活细胞超过三个活邻居会死亡(模拟过度拥挤)
4️⃣ 任何死细胞(Dead)恰有三个活邻居,会复活(模拟繁殖)
规则应用于 整个网格,所有细胞同步更新,形成新的状态(即下一代)。
二、规则示例:计算下一代
假设我们有如下 初始状态:
⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ 🟩 ⬜ ⬜
⬜ 🟩 🟩 🟩 ⬜
⬜ ⬜ ⬜ ⬜ ⬜
(🟩 代表活细胞,⬜ 代表死细胞)
第一步:检查每个细胞的邻居
第一行(全死细胞)
- 没有 3 个活邻居,所有细胞保持死亡。
第二行
(2,3)
活细胞 只有 1 个活邻居,会 死亡 ❌(3,3)
活细胞 只有 1 个活邻居,会 死亡 ❌(3,2)
活细胞 具有 2 个活邻居,继续存活 ✅(2,2)
活细胞 具有 2 个活邻居,继续存活 ✅(2,4)
死细胞 具有 3 个活邻居,变成活细胞 🟩
第二步:生成下一代
⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ 🟩 ⬜
⬜ 🟩 🟩 🟩 ⬜
⬜ ⬜ ⬜ ⬜ ⬜
你是否发现了熟悉的图案?
这是 经典的 “Blinker”(闪烁体)模式,它将在下一代 交替变化。
三、生命游戏中的常见结构
康威生命游戏尽管规则简单,但会涌现出许多复杂的 模式(Patterns)。
1️⃣ 静止结构(Still Life)
这些结构永远不会改变,因为没有规则会影响它们。
例子:Block(块状结构)
⬜ ⬜ ⬜ ⬜
⬜ 🟩 🟩 ⬜
⬜ 🟩 🟩 ⬜
⬜ ⬜ ⬜ ⬜
- 原因:所有活细胞都有 2 或 3 个活邻居,符合存活条件,而死细胞没有 3 个活邻居,不会复活。
其他静止结构:
- Beehive(蜂巢)
- Loaf(面包)
- Boat(船)
2️⃣ 震荡体(Oscillators)
这些结构会 在几个代(ticks)内不断交替变化,但周期性重复。
例子:Blinker(闪烁体)
初始状态:
⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ 🟩 ⬜ ⬜
⬜ 🟩 🟩 🟩 ⬜
⬜ ⬜ ⬜ ⬜ ⬜
下一代:
⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 🟩 🟩 ⬜
⬜ ⬜ 🟩 ⬜ ⬜
⬜ ⬜ ⬜ ⬜ ⬜
特点:每两代(ticks)变化一次,周期 = 2。
其他震荡体:
- Toad(蟾蜍)
- Beacon(灯塔)
- Pulsar(脉冲星)
3️⃣ 飞船(Spaceships)
这些结构不仅会震荡,还会 沿着某个方向移动。
例子:Glider(滑翔机)
初始状态:
⬜ ⬜ 🟩 ⬜
⬜ ⬜ ⬜ 🟩
⬜ 🟩 🟩 🟩
⬜ ⬜ ⬜ ⬜
下一代:
⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ 🟩
⬜ ⬜ 🟩 🟩
⬜ ⬜ 🟩 ⬜
特点:每 4 个代(ticks)向右下角 移动 1 格。
其他飞船:
- Lightweight Spaceship (LWSS)
- Middleweight Spaceship (MWSS)
- Heavyweight Spaceship (HWSS)
4️⃣ 枪(Glider Gun)
最著名的动态结构之一是 Gosper Glider Gun,它可以不断生成滑翔机(Gliders),形成一个稳定的滑翔机流。
⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ ⬜ 🟩 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ 🟩 ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ 🟩 ⬜ 🟩 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ 🟩 ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ ⬜ 🟩 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
特点:它是生命游戏中的“可编程计算机”,可以用于模拟逻辑门、计算机程序,甚至编写“生命游戏”中的生命游戏!