康威生命游戏 | 元胞自动机

计算机

元胞自动机(cellular automata,CA)是一种时间、空间、状态都离散,
空间相互作用和时间因果关系为局部的网格动力学模型,
具有模拟复杂系统时空演化过程的能力.

康威生命游戏,属于元胞自动机,为零玩家游戏(说白了就是别想玩它,没有玩家)

图片来自Wikipedia


迭代规则

每个细胞有两种状态 - 存活或死亡,每个细胞与以自身为中心的周围八格细胞产生互动(如图,黑色为存活,白色为死亡)

  • 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态. (模拟生命数量稀少)
  • 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样.
  • 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态. (模拟生命数量过多)
  • 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态. (模拟繁殖)

C++实现

介绍

所以我写了一个

我没有弄得想上面的gif那样好看,而是按照给定密度随机生成初始网格,如果你愿意,可以在程序中修改初始网格的样式.

如果感兴趣可以自己试着改一下我的程序.

下面说明一下程序的操作方法:

  • Enter↵: 迭代一次
  • W: 向上移动,直至边界
  • S: 向下移动,直至边界
  • A: 向左移动,直至边界
  • D: 向右移动,直至边界
  • F: 自动迭代开/关
  • E: 退出生命游戏

代码

warning

请在Linux环境下编译运行

LIFEhttps://one.xecades.xyz/%F0%9F%92%BB%20Projects/LIFE/LIFE.cpp

或者在线模拟器:

生命游戏模拟器https://lab.xecades.xyz/GameOfLife/ 自己写的模拟器 (buggy)https://lab.xecades.xyz/CA/

简单弄着玩的,如有疏漏,请在下方评论

本文作者:Xecades

本文链接:https://blog.xecades.xyz/articles/LifeGame/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

评论