#include"stdlib.h"
#include"time.h"
#include"unistd.h"
using namespace std;
#define XSIZE 80
#define YSIZE 30
#include"iostream"
using namespace std ;
// 初始化生命
void initLive(int a[YSIZE][XSIZE])
{
// 初始化边界
for(int i=0;i { a[i][0]=0; a[i][XSIZE-1]=0; } for(int i=0;i { a[0][i]=0; a[YSIZE-1][i]=0; } for(int i=1;i { for(int j=1;j { a[i][j]=rand()%2; } } } // 清空 void clear(int a[YSIZE][XSIZE]) { for(int i=0;i { for(int j=0;j { a[i][j]=0; } } } // 监测8个方格 int getSum(int a[YSIZE][XSIZE],int y,int x) { int sum=0; sum+=a[y+1][x]; sum+=a[y-1][x]; sum+=a[y][x+1]; sum+=a[y][x-1]; sum+=a[y+1][x+1]; sum+=a[y-1][x+1]; sum+=a[y+1][x-1]; sum+=a[y-1][x-1]; return sum; } // 从a状态生成到b中 void nextStatus(int b[YSIZE][XSIZE],int a[YSIZE][XSIZE]) { int sum=0; for(int i=1;i { for(int j=1;j { sum=getSum(a,i,j); // 测试四种状态 if(a[i][j]==0 and sum==3) { b[i][j]=1; } else if(a[i][j]==1 and sum<2) { b[i][j]=0; }else if(a[i][j]==1 and sum>3) { b[i][j]=0; } else if(a[i][j]==1 and (sum==2 or sum==3)) { b[i][j]=1; } } } } // 打印 void printer(int a[YSIZE][XSIZE]) { for(int i=0;i cout<<"--"; cout< for(int i=0;i { for(int j=0;j { if(a[i][j]>0) { cout<<"国"; } else { cout<<" "; } } cout< } // usleep(1000000); usleep(100000); } int main(){ // 设置随机种子 srand(time(NULL)); int a[YSIZE][XSIZE]; int b[YSIZE][XSIZE]; initLive(a); clear(b); while (true) { // 生成下一种状态 nextStatus(b,a); // 打印状态 printer(b); // 清空上一次的状态 clear(a); nextStatus(a,b); printer(a); clear(b); } }
上一篇:信息化发展与应用的新特点
下一篇:npoi word 里面厂家操作