C++: 生命游戏(模拟细胞群演化)
来源:互联网 发布:手机excle不同数据筛选 编辑:程序博客网 时间:2024/04/27 23:35
生命游戏是由英国剑桥大学数学家John Conway提出的,游戏的规则是这样的,在一个M*N棋盘上,每格只有两个状态, “生”和“死”,分别表示是否被一个生命棋子所占有.每个方格有八个邻格,游戏的规则如下:
a) 对于处在“生”状态的格,若八个邻居中当前有2个或3个“生命”,则继续保持存活状态,否则在下一个状态,将因过于孤独或过于拥挤而死亡.
b) 对于处在“死”态的空格,若八个邻格中有3个“生命”,则该格在下一状态将转变为“生命”(代表繁衍过程),否则继续空着.
游戏中的所有生命棋子依据上述确定的局部规则作同步更新,一代繁殖一代地进行着。
用C++进行摸拟
a) 对于处在“生”状态的格,若八个邻居中当前有2个或3个“生命”,则继续保持存活状态,否则在下一个状态,将因过于孤独或过于拥挤而死亡.
b) 对于处在“死”态的空格,若八个邻格中有3个“生命”,则该格在下一状态将转变为“生命”(代表繁衍过程),否则继续空着.
游戏中的所有生命棋子依据上述确定的局部规则作同步更新,一代繁殖一代地进行着。
用C++进行摸拟
#include<iostream>#include<ctime>#include<cstdlib>#include<unistd.h>using namespace std;void init();void printArea();void evol();int surroundingLifeCount(int y, int x);bool** cells;int lenArea;int amount;int main(void) {cout << "输入网格宽度: ";cin >> lenArea; cells = new bool*[lenArea];for(int i=0;i<lenArea;i++) cells[i] = new bool[lenArea];cout << "输入初始个数: ";cin >> amount;init();while(true) {system("cls");printArea();evol();sleep(1);}}void init() {srand(time(NULL));for(int i=0;i<lenArea;i++) for(int j=0;j<lenArea;j++) cells[i][j] = false;for(int i=0;i<amount;i++) {int m = rand()%lenArea,n = rand()%lenArea;if(cells[m][n]) {i--;continue;}else cells[m][n] = true;}}void printArea() {for(int i=0;i<lenArea;i++) {for(int j=0;j<lenArea;j++)if(cells[i][j]) cout << " " << "*";else cout << " ";cout << endl;}}void evol() {int lifeCount, x, y;for(int i=0;i<lenArea;i++) {for(int j=0;j<lenArea;j++) {lifeCount = surroundingLifeCount(i,j);if(cells[i][j]) if(lifeCount<2 || lifeCount>3) cells[i][j] = false;if(cells[i][j]==false && lifeCount==3) cells[i][j] = true;}}}int surroundingLifeCount(int y, int x) {int curY, curX;int lifeCount = 0;for(curY=y-1;curY<=y+1;curY++)for(curX=x-1;curX<=x+1;curX++)if( !(curX==x&&curY==y) && curY>=0 && curY<lenArea && curX>=0 && curX<lenArea && cells[curY][curX]) lifeCount++;return lifeCount;}
0 0
- C++: 生命游戏(模拟细胞群演化)
- 细胞自动机(生命游戏)源码
- Algorithm Gossip(10) 细胞生命游戏
- 【模拟】【RQNOJ】生命游戏
- QT 生命游戏模拟
- [细胞生命进化理论]关于基因文明的演化道路的一些思考
- 生命游戏和细胞自动机的学习笔记
- (结对编程)之细胞生命游戏
- 生命游戏(c/python)
- 生命游戏 c语言实现
- 生命游戏 c语言实现
- 生命游戏(c语言)
- 生命游戏代码(C#)
- 生命游戏(c语言)
- 细胞模拟程序
- 用c语言演绎“生命游戏”
- 用c语言演绎“生命游戏”
- 用c语言演绎“生命游戏”001
- Unity拖影效果
- 《C Premer Plus(第五版)中文版》部分读书笔记
- 排序算法性能和使用场景总结
- Hibernate基本查询(学习笔记)
- HELLO WORLD!
- C++: 生命游戏(模拟细胞群演化)
- 时钟显示
- Android中Application类用法
- POSIX && XSI
- 安卓Picasso实战体验--图片加载、缓存、回收新选择
- 注意!C语言的枚举enum是int型常量
- (function($,window,document){.......这样的开头的jquery是什么意思?
- SurfaceView和SurfaceHolder的关系
- Basler Pylon工业相机SDK的使用