生命游戏
来源:互联网 发布:倩女幽魂辅助软件 编辑:程序博客网 时间:2024/06/08 13:25
生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出,某一细胞的邻居包
括上、下、左、右、左上、左下、右上与右下相邻之细胞,游戏规则如下:
孤单死亡:如果细胞的邻居小于一个,则该细胞在下一次状态将死亡。
拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一次状态将死亡。
稳定:如果细胞的邻居为二个或三个,则下一次状态为稳定存活。
括上、下、左、右、左上、左下、右上与右下相邻之细胞,游戏规则如下:
孤单死亡:如果细胞的邻居小于一个,则该细胞在下一次状态将死亡。
拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一次状态将死亡。
稳定:如果细胞的邻居为二个或三个,则下一次状态为稳定存活。
复活:如果某位置原无细胞存活,而该位置的邻居为三个,则该位置将复活一细胞。
#include <iostream>#include <time.h>using namespace std;#defineROW 10#defineCOLUMN 10#define ALIVE 1#define DEAD 0int nCellSta[ROW][COLUMN];int nTempSta[ROW][COLUMN];int CellCount(int nRow, int nColumn){int nSum = 0;for (int i = nRow-1; i< nRow +2; i++){for (int j = nColumn -1; j< nColumn +2 ; j++){if (i < 0 || i >ROW-1 || j<0 || j>COLUMN -1){continue;}if (nCellSta[i][j] == ALIVE){nSum++;}}}switch(nSum){case 0:case 1:case 4:case 5:case 6:case 7:case 8:return DEAD;case 2:return nCellSta[ROW][COLUMN];case 3:return ALIVE;}}int PrintValue(){int nSum = 0;for (int i = 0; i< COLUMN; i++){for (int j = 0; j< ROW; j++){cout<<nCellSta[i][j]<<" "; nSum += nCellSta[i][j];}cout<<endl<<endl;}return nSum;}int main(){int nFlag = 0;memset(nCellSta, 0, sizeof(nCellSta));memset(nTempSta, 0, sizeof(nTempSta));srand(time(NULL));for (int i = 0; i< COLUMN; i++){for (int j = 0; j< ROW; j++){nCellSta[i][j] = rand() % 2;}}PrintValue();while (1){cout<<"新一轮游戏进化开始"<<endl;for (int i = 0; i< COLUMN; i++){for (int j = 0; j< ROW; j++){nTempSta[i][j] = CellCount(i, j);}}memcpy(nCellSta,nTempSta,sizeof(nCellSta));if(!PrintValue()){cout<<"全部死亡,进化结束"<<endl;break;}cout<<"是否开启下一轮进化,1继续,0退出"<<endl;cin>>nFlag;if (nFlag){continue;}elsebreak;}system("pause");}
0 0
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 生命游戏
- 游戏算法-生命游戏
- "生命游戏",VB
- 生命游戏 题解
- 【模拟】【RQNOJ】生命游戏
- QT 生命游戏模拟
- 算法思考--------生命游戏
- Algorithm Gossip:生命游戏
- 阿里云上配置CentOS安装Git(小沐git安装命令全集整理版)
- day35,page60
- 安卓android下动静态逆向配合的一般步骤
- java6对语言的动态性的支持(1)
- 中兴通讯2013校招软件笔试题
- 生命游戏
- Android 蓝牙聊天程序代码实例
- 尽量使用常量引用
- "左值"是什么
- 湖南省第七届大学生计算机程序设计竞赛 RMQ with Shifts (线段树)
- UVA 10562 - Undraw the Trees
- cc150-8.1
- python模块及包的导入
- CMM & 敏捷开发,向左走?向右走?