细胞自动机在Debug下的生命游戏

2017-02-04 18:23 阅读 786 次 评论 0 条

生命游戏说明

假设平面上画许多方形网格,每个方格中放置一个生命细胞,生命细胞只有两种状态:生或死。对其中一个网格有上、下、左、右、左上、左下、右下、右上一共8个相邻网格,根据这些网络中的细胞数量决定当前网格细胞的存活。

游戏规则

孤单死亡:若细胞的相邻网格中没有细胞存在,则该细胞在下一次状态死亡。

拥挤死亡:若细胞的相邻网格中细胞数量在4个(含4个)以上,则该细胞下一次状态死亡。

复活:若细胞的相邻网格中细胞数量为3个,则将当前位置的细胞复活。

稳定:若细胞的相邻网格中细胞数量为2个,则将当前位置的细胞保持原状。

设计思路

通过生命游戏的游戏规则先将四种情况分出来单独处理,定义两个二维数组,一个用来保存当前的细胞状态,另一个用于转换时的临时状态。细胞周围的数量,可以先计算出当前坐标的三行三列共9个网格,通过判断当前坐标的细胞存活情况,如果是活细胞,则count-1。细胞在每次转换后,都需要计算一下活细胞的数量,只需要简单的遍历一遍数组即可求出。

函数模块

int cell[MAXROW][MAXCOL];      //当前状态

int tempcell[MAXROW][MAXCOL];     //转换的临时状态

void Init();    //初始化细胞数组

int BorderSum(int,int);      //统计当前细胞周围的细胞数

int AliveSum();     //统计生细胞的数量

void Output();      //输出细胞状态

源代码及注释

 

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:细胞自动机在Debug下的生命游戏 | 术与道的分享
分类:编程素养 标签:,
1024do.com导航_术与道导航平台

发表评论


表情