元胞自动机(cellular automata,CA)是一种时间、空间、状态都离散,
空间相互作用和时间因果关系为局部的网格动力学模型,
具有模拟复杂系统时空演化过程的能力.
康威生命游戏,属于元胞自动机,为零玩家游戏(说白了就是别想玩它,没有玩家)
迭代规则
每个细胞有两种状态 - 存活或死亡,每个细胞与以自身为中心的周围八格细胞产生互动(如图,黑色为存活,白色为死亡)。
- 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少)
- 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。
- 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态。(模拟生命数量过多)
- 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖)
C++实现
介绍
所以我写了一个玩。
我没有弄得想上面的gif那样好看,而是按照给定密度随机生成初始网格,如果你愿意,可以在程序中修改初始网格的样式.
如果感兴趣可以自己试着改一下我的程序.
下面说明一下程序的操作方法:
- Enter↵: 迭代一次
- W: 向上移动,直至边界
- S: 向下移动,直至边界
- A: 向左移动,直至边界
- D: 向右移动,直至边界
- F: 自动迭代开/关
- E: 退出生命游戏
代码
LIFEwarning请在Linux环境下编译运行
简单弄着玩的,如有疏漏,请在下方评论。
本文作者:Xecades
本文链接:https://blog.xecades.xyz/articles/LifeGame/
文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。
评论