概念:自动运行的机器
大家知道细胞自动机这个东西吗?当年冯诺依曼发明了计算机,同时也提出了一个概念:有一种机器,只要人为事先设定好,便可以一直自行地执行下去。可惜他早逝,52岁便被癌症带往天堂,到真正实现要到那个人:约翰.康威。他发明了一款连他自己也想不到其影响的游戏,即生命游戏,现在就是我们的细胞自动机。接下来,来看一下ta的运行规则吧。
运行规则:
很简单,也很好理解:
- 这是一个只有细胞元的世界,每个细胞元占一格,且只有生与死两种状态;
- 现在时刻的状态由上一步骤决定;
- 状态变化的规则1:如果一个生细胞元周围存在 2 或 3 个生细胞元,则ta继续生,否则ta将死。
- 状态变化的规则2:如果一个死细胞元周围只存在 3 个活细胞元,则ta可以生,否则依旧死。
- 注:一个细胞元周围是8个细胞元,是这8个细胞元决定中间那个细胞元的状态
很简单易懂,是么
代码实现
用类实现,8个方向的搜索。直接上代码(为了节省空间,压缩了空行,可能有点难看。一共45行)
#include <iostream>
using namespace std;
class LiveGame{
public:
bool Map [100][100];
void rule();
void printfunc();
private:
int wayX[8] = {
-1, 0, 1, -1