生命游戏是由英国剑桥大学数学家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() {
sran