#include "stdio.h" #include "string.h" #include "windows.h" #define N
49//1表示棋子,只有黑色棋子 int chess[N+2][N+2];//定义棋盘大小 int chess0[N+2][N+2];//辅助棋盘 void
Initialize();//初始化一个对局函数 void RunGame();//进行游戏 int Count(int i,int
j);//计算生命周围的生命数量 void Data();//调用已存的游戏数据 main() { system("mode con cols=99
lines=50");//设置窗口大小 system("color 70");//设置颜色 Initialize();//初始化一个对局函数
RunGame();//进行游戏 } void Initialize()//初始化一个对局函数 { Data();//调用已存的游戏数据 } void
Data()//调用已存的游戏数据 { int p=12; int l; for(l=-16;l<=16;l++)
//if(l!=-8&&l!=0&&l!=4) chess[N/2+1][N/2+1+l]=1; /* //滑翔机
chess[1][3]=1;chess[2][1]=1;chess[2][3]=1;chess[3][2]=1;chess[3][3]=1; */ /*
//高斯帕滑翔机 chess[1][p+11]=1;chess[1][p+13]=1; chess[2][p+10]=1;chess[2][p+13]=1;
chess[3][p+9]=1;chess[3][p+10]=1;chess[3][p+21]=1;chess[3][p+28]=1;
chess[4][p+1]=1;chess[4][p+2]=1;chess[4][p+7]=1;chess[4][p+8]=1;chess[4][p+12]=1;chess[4][p+21]=1;chess[4][p+27]=1;chess[4][p+29]=1;
chess[5][p+1]=1;chess[5][p+2]=1;chess[5][p+9]=1;chess[5][p+10]=1;chess[5][p+20]=1;chess[5][p+27]=1;chess[5][p+28]=1;chess[5][p+30]=1;
chess[6][p+10]=1;chess[6][p+13]=1;chess[6][p+16]=1;chess[6][p+17]=1;chess[6][p+27]=1;chess[6][p+28]=1;chess[6][p+30]=1;chess[6][p+31]=1;chess[6][p+35]=1;chess[6][p+36]=1;
chess[7][p+11]=1;chess[7][p+13]=1;chess[7][p+16]=1;chess[7][p+19]=1;chess[7][p+20]=1;chess[7][p+21]=1;chess[7][p+22]=1;chess[7][p+27]=1;chess[7][p+28]=1;chess[7][p+30]=1;chess[7][p+35]=1;chess[7][p+36]=1;
chess[8][p+16]=1;chess[8][p+17]=1;chess[8][p+18]=1;chess[8][p+19]=1;chess[8][p+27]=1;chess[8][p+29]=1;
chess[9][p+17]=1;chess[9][p+18]=1;chess[9][p+28]=1; */ } void RunGame()//进行游戏 {
int i,j,s=0; int flag=0; while(1) { system("cls");//清理屏幕,准备写入
for(i=1;i<N+1;i++) { for(j=1;j<N+1;j++) if(chess[i][j]==1)
printf("█");//printf("■"); else if(chess[i][j]==0) printf(" "); printf("\n"); }
for(i=1;i<N+1;i++) for(j=1;j<N+1;j++) { s=Count(i,j); if(chess[i][j]==1) {
if(s<2) chess0[i][j]=0;//如果一个生命周围的生命少于2个,它在回合结束后死亡。 else if(s>3)
chess0[i][j]=0;//如果一个生命周围的生命超过3个,它在回合结束后死亡。 else if(s==2||s==3)
chess0[i][j]=1;//如果一个生命周围有2或3个生命,它在回合结束时保持原样。 } else if(chess[i][j]==0) {
if(s==3) chess0[i][j]=1;//如果一个死格周围有3个生命,它在回合结束时获得生命。 } } for(i=1;i<N+1;i++)
for(j=1;j<N+1;j++) chess[i][j]=chess0[i][j]; Sleep(5); if(flag==0) { getchar();
flag=1; } } } int Count(int i,int j)//计算生命周围的生命数量 { int s=0,a,b;
for(a=-1;a<=1;a++) for(b=-1;b<=1;b++) if(!(a==0&&b==0)&&chess[i+a][j+b]==1)
s++; return s; }
 

技术
今日推荐
PPT
阅读数 107
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信