⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.cpp

📁 这是一个模拟生物种群的小游戏程序
💻 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 + -