📄 game.cpp
字号:
#include <iostream.h>
const int MAXX=5;
const int MAXY=5;
struct Game
{
char fangwei[8];
char dangqianz;
int dangqianx;
int dangqiano;
};
void input(Game a[][MAXY],int sized);
void tongji(Game a[][MAXY],int& x,int& y);
void panduan(Game a[][MAXY],int& x,int& y);
void output(Game a[][MAXY],int sized);
int search(Game a[][MAXY]);
void main()
{
Game life[MAXX][MAXY];
Game plife[MAXX][MAXY];
int i,j,num,dai=1,numf;
char k;
// do
// {
input(life,MAXX);
numf=search(life);
cout<<"初始个体有"<<numf<<"个。\n";
do//while(num!=0)
{
for(i=0;i<MAXX;i++)
{
for(j=0;j<MAXY;j++)
{
life[i][j].dangqianx=0;
life[i][j].dangqiano=0;
tongji(life,i,j);
}
}
for(i=0;i<MAXX;i++)
{
for(j=0;j<MAXY;j++)
panduan(life,i,j);
}
output(life,MAXX);
num=search(life);
cout<<"现在存活的生命体有"
<<num<<"个。属于第"<<dai<<"代。\n";
dai++;
cin>>k;
}while(k!='n');
return;
}
void input(Game a[][MAXY],int sized)
{
int i,j;
cout<<"输入数据:\n";
for(i=0;i<sized;i++)
{
for(j=0;j<MAXY;j++)
cin>>a[i][j].dangqianz;
}
cout<<"初始生命形式是:\n";
for(i=0;i<MAXX;i++)
{
for(j=0;j<MAXY;j++)
cout<<a[i][j].dangqianz;
cout<<endl;
}
}
void tongji(Game a[][MAXY],int& x,int& y)
{
//上
int shang=x-1;
if(shang>=0)
{
a[x][y].fangwei[0]=a[shang][y].dangqianz;
if(a[x][y].fangwei[0]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[0]=='o')
a[x][y].dangqiano++;
}else
a[x][y].fangwei[0]='e';
//下
int xia=x+1;
if(xia<MAXX)
{
a[x][y].fangwei[1]=a[xia][y].dangqianz;
if(a[x][y].fangwei[1]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[1]=='o')
a[x][y].dangqiano++;
}else
a[x][y].fangwei[1]='e';
//左
int zuo=y-1;
if(zuo>=0)
{
a[x][y].fangwei[2]=a[x][zuo].dangqianz;
if(a[x][y].fangwei[2]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[2]=='o')
a[x][y].dangqiano++;
}else
a[x][y].fangwei[2]='e';
//右
int you=y+1;
if(you<MAXY)
{
a[x][y].fangwei[3]=a[x][you].dangqianz;
if(a[x][y].fangwei[3]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[3]=='o')
a[x][y].dangqiano++;
}else
a[x][y].fangwei[3]='e';
//左上
if(shang>=0&&zuo>=0)
{
a[x][y].fangwei[4]=a[shang][zuo].dangqianz;
if(a[x][y].fangwei[4]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[4]=='o')
a[x][y].dangqiano++;
}
//右上
if(shang>=0&&you<MAXY)
{
a[x][y].fangwei[5]=a[shang][you].dangqianz;
if(a[x][y].fangwei[5]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[5]=='o')
a[x][y].dangqiano++;
}
//左下
if(zuo>=0&&xia<MAXX)
{
a[x][y].fangwei[6]=a[xia][zuo].dangqianz;
if(a[x][y].fangwei[6]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[6]=='o')
a[x][y].dangqiano++;
}
//右下
if(you<MAXY&&xia<MAXX)
{
a[x][y].fangwei[7]=a[xia][you].dangqianz;
if(a[x][y].fangwei[7]=='x')
a[x][y].dangqianx++;
else if(a[x][y].fangwei[7]=='o')
a[x][y].dangqiano++;
}
}
void panduan(Game a[][MAXY],int& x,int& y)
{
if(a[x][y].dangqianz=='x')
{
if(a[x][y].dangqianx<2)
a[x][y].dangqianz='o';
else if(a[x][y].dangqianx>3)
a[x][y].dangqianz='o';
}else if(a[x][y].dangqianz=='o')
{
if(a[x][y].dangqianx==3)
a[x][y].dangqianz='x';
}
}
void output(Game a[][MAXY],int sized)
{
int i,j;
cout<<"现在生命形式是:\n";
for(i=0;i<sized;i++)
{
for(j=0;j<MAXY;j++)
cout<<a[i][j].dangqianz;
cout<<endl;
}
cout<<endl;
}
int search(Game a[][MAXY])
{
int count=0;
char ans='x';
int i,j;
for(i=0;i<MAXX;i++)
{
for(j=0;j<MAXY;j++)
{
if(a[i][j].dangqianz==ans)
count++;
}
}
return (count);
}
/*bool key(Game a[][MAXY],Game b[][MAXY])
{
for(int i=0;i<MAXX;i++)
{
for(int j=0;j<MAXY;j++)
{
if(a[i][j].dangqianz==b[i][j].dangqianz)
return false;
else return true;
}
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -