请高手用C++编写程序—生命游戏

请高手用C++编写程序—生命游戏,第1张

#include<iostream>

using namespace std;

#include<timeh>

#define M 70

#define N 20

void mShow(int a[N+2][M+2])

{ int i,j;

for ( i=0;i<N;i++,cout<<endl )

for ( j=0;j<M;j++ )

if ( a[i+1][j+1] ) cout<<'';

else cout<<'';

//cout<<( a[i+1][j+1] )(''):(' ');

}

int mJduge(int a[N+2][M+2])

{ int i,j,k,s,p[9],b[N][M];

for ( i=0;i<N;i++ )

{

p[0]=p[4]=p[5]=&a[i+1][1]; p[4]--; p[5]++;   // 1 2 3

p[1]=p[2]=p[3]=p[0]-M-2; p[1]--; p[3]++;     // 4 0 5

p[6]=p[7]=p[8]=p[0]+M+2; p[6]--; p[8]++;   // 6 7 8

for ( j=0;j<M;j++ )

{ for ( k=1,s=0;k<9;k++ ) s+=(p[k]);

b[i][j]=p[0];

if ( s>=3 ) b[i][j]=1;

else if ( s<2 ) b[i][j]=0;

for ( k=0;k<9;k++ ) p[k]++;

}

}

for ( i=0,s=1;i<N;i++ ) for ( j=0;j<M;j++ ) { a[i+1][j+1]=b[i][j]; if ( b[i][j]==0 ) s=0; }

return s;

}

void main()

{

int a[N+2][M+2],b[N][M],p[9];

int t,i,j,k;

for ( i=0;i<N+2;i++ ) for ( j=0;j<M+2;j++ ) a[i][j]=0;

srand((unsigned int)time(NULL));

for ( i=0;i<N;i++ ) for ( j=0;j<M;j++ ) { k=rand()%100; a[i+1][j+1]=( k>=77 )(1):(0); }

cout<<"-------- T=0--------"<<endl; mShow(a);

k=0; t=0;

while ( !k )

{ k=mJduge(a); t++;

cout<<"-------- T="<<t<<" --------"<<endl; mShow(a);

}

}

a数组比实际要的数组大一圈,大出来的一圈永恒等于0,作为边界,省得计算8连通数据时数组越界

b数组用于计算本次的结果,计算完成后复制、覆盖a数组中间部分作为结果

主程序做直到所有空间都被活细胞占满情况停止

以下是设置M=10,N=5的测试部分结果

并不是,生命是有意义的,生命的存在需要有价值和意义,要向世界证明自己曾经来过,要在这世间留下自己曾经存在过的痕迹,不能庸庸碌碌一生。

生活的意义不仅是肉体的生存,更在于心灵的成长。成长的过程起起伏伏,不是金钱数字所能衡量,物质层面与精神层面基本没有什么线性相关。当一个人的人格堕落之时,也可能正是他财富快速增长之时 ;当一个人精神矍铄,同时财富也极其殷实;当一个人穷困潦倒,心情却恬淡寡欲。很难找出必然的规律或是那种符合健康标准。

- onShow 页面显示时触发

该函数需return一个Object

示例

示例:

示例:

示例:

以上就是关于请高手用C++编写程序—生命游戏全部的内容,包括:请高手用C++编写程序—生命游戏、生命只是个程序没有意义吗、小程序生命周期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9462387.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存