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

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

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

图片来自Wikipedia


迭代规则

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

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

C++实现

介绍

所以我写了一个玩。

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

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

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

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


代码

warning

请在Linux环境下编译运行

LIFEhttps://pan.xecades.xyz/%E5%85%AC%E5%BC%80/Blog/LifeGame/LIFE.cpp

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

本文作者:Xecades

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

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

评论