康威生命游戏 (Conway‘s Game of Life) 详解

一、规则介绍

游戏的世界是一个 无限二维网格,其中每个细胞(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),形成一个稳定的滑翔机流

⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ ⬜ 🟩 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ 🟩 ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ 🟩 ⬜ 🟩 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ 🟩 ⬜ ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ 🟩 ⬜ ⬜ 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
⬜ ⬜ ⬜ 🟩 🟩 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜

特点:它是生命游戏中的“可编程计算机”,可以用于模拟逻辑门、计算机程序,甚至编写“生命游戏”中的生命游戏!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello.Reader

请我喝杯咖啡吧😊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值