level 2
落落后生
楼主
#include"iostream.h"
int main()
{
Chessboard chessboard ;
int k=1;
chessboard=chessboard.iniboard(chessboard);
cout<<"下面给出一个15*15的棋盘:"<<endl;
count<<"棋子空格表示细胞死,*表示细胞活"<<endl;
chessboard.print(chessboard);
while(k==1)
{
cout<<"请选择:"<<endl;
cot<<"1:进行变化"<<endl;
cout<<"2:退出"<<endl;
cin>>k;
if(k==2)
{
break ;
}
chessboard=chessboard.changestate(chessboard);
//对棋盘上的细胞生死进行变换
cout<<"现在输出变换后的状态"<<endl;
chessboard.print(chessboard); //输出变化后的细胞状态
};
}
#include"chessboard.h"
#include"iostream.h"
#include"time.h"
#include"stdlib.h"
//**********计算摸个细胞周围活的细胞的个数***********
int Chessboard::livngnum(int i,int j,Chessboard chessboard)
{
int livingnum=0;
if((i>=1)&(j>=1)&(i<=13)&(j<=13))
livingnum=chessboard.value[i-1][j-1]+chessboard.value[i-1][j]
+chessboard.value[i-1][j+1]+chessboard.value[i][j-1]
+chessboard.value[i][j+1]+chessboard.value[i+1][j-1]
+chessboard.value[i+1][j]+chessboard.value[i+1][j+1];
if((i==0)&(j==0))
{
livingum=chessboard.vale[i][j+1]+chessboard.value[i+1][j]+chessboard.value[i+1][j+1];
}
if((i==0)&(j==14))
{
livingnum=chessboard.value[i][j-1]+chessboard.value[i+1][j-1]+chessboard.value[i+1][j];
}
if((i==14)&(j==0))
{
livingnum=chessboard.value[i-1][j]+chessboard.value[i-1][j+1]+chessboard.value[i-1][j+1];
}
if((i==14)&(j==14))
{
livingnum=chessboard.value[i-1][j-1]+chessboard.value[i-1][j]+chessboard.value[i][j-1];
}
if((i==0)&(j>0)&(j<14))
{
livingnum=chessboard.value[i][j-1]+chessboard.value[i][j+1]+chessboard.value[i+1][j-1]+
chessboard.value[i+1][j]+chessboard.value[i+1][j+1];
}
if((i==14)&(j>0)&(j<14))
{
livingnum=chessboard.value[i][j-1]+chessboard.value[i][j+1]+chessboard.value[i-1][j-1]+
chessboard.value[i-1][j]+chessboard.value[i-1][j+1];
}
if((j==0)&(i>0)&(i<14))
{
livingnum=chessboard.value[i-1][j]+chessboard.value[i+1][j]+chessboard.value[i-1][j+1]+
chessboard.value[i][j+1]+chessboard.value[i+1][j+1];
}
if((j==14)&(i>0)&(i<14))
{
livingnum=chessboard.value[i-1][j]+chessboard.value[i+1][j]+chessboard.value[i-1][j-1]+
chessboard.value[i][j-1]+chessboard.value[i+1][j-1];
}
return livingnum;
}
void Chessboard::print(Chessboard chessboard)
{
cout<<"--------------------------------------"<<endl;
for(int j=0;j<=14;j++)
{
cout<<"|";
for(int j=0;j<=14;j++)
{
cout<<chessboard.state[i][j]<<"";
}
cout<<"|";
cout<<endl;
}
cout<<"-------------------------------------------"<<endl;
}
Chessboard Chessboard::iniboard(Chessboard chessboard)
{
srand((unsigned)time(NULL));
//初始化棋盘,每个棋盘位的细胞随机生死
for(int i=0;i<=14;i++)
{
for(int j=0;j<=14;j++)
{
chessboard.value[i][j]=rand()%2;
if(chessboard.value[i][j]==1)
{
chessboard.state[i][j]='*';
}
else
{
chessboard.state[i][j]'';
}
}
}
return chessboard;
}
//*********依据规则改变棋盘上棋子的状态******************
Chessboard Chessboard::changestate(Chessboard chessboard)
{
for(int i=0;i<=14;i++)
{
for(int j=0;j<=14;j++)
{
switch(chessboard.livingnum(i,j,chessboard))
{
case 3:
chessboard.value[i][j]=1;
chessboard.state[i][j]='*';
break;
case 2:
chessboard.value[i][j]=chessboard.value[i][j];
break;
default:
chessboard.value[i][j]=0
chessboard.state[i][j]='';
}
}
}
return chessboard;
}
#ifndef Chessboard_h_h
#define Chessboard_h_h
class Chessboard
{
public:
char state[15][15];
int value[15][15];
int livngnum(int i,int j,Chessboard chessboard);
void print (Chessboard chessboard);
Chessboard iniboard(Chessboard chessboard);
Chessboard changestate(Chesboard chesboard);
};
#endif
2014年06月10日 11点06分
1
int main()
{
Chessboard chessboard ;
int k=1;
chessboard=chessboard.iniboard(chessboard);
cout<<"下面给出一个15*15的棋盘:"<<endl;
count<<"棋子空格表示细胞死,*表示细胞活"<<endl;
chessboard.print(chessboard);
while(k==1)
{
cout<<"请选择:"<<endl;
cot<<"1:进行变化"<<endl;
cout<<"2:退出"<<endl;
cin>>k;
if(k==2)
{
break ;
}
chessboard=chessboard.changestate(chessboard);
//对棋盘上的细胞生死进行变换
cout<<"现在输出变换后的状态"<<endl;
chessboard.print(chessboard); //输出变化后的细胞状态
};
}
#include"chessboard.h"
#include"iostream.h"
#include"time.h"
#include"stdlib.h"
//**********计算摸个细胞周围活的细胞的个数***********
int Chessboard::livngnum(int i,int j,Chessboard chessboard)
{
int livingnum=0;
if((i>=1)&(j>=1)&(i<=13)&(j<=13))
livingnum=chessboard.value[i-1][j-1]+chessboard.value[i-1][j]
+chessboard.value[i-1][j+1]+chessboard.value[i][j-1]
+chessboard.value[i][j+1]+chessboard.value[i+1][j-1]
+chessboard.value[i+1][j]+chessboard.value[i+1][j+1];
if((i==0)&(j==0))
{
livingum=chessboard.vale[i][j+1]+chessboard.value[i+1][j]+chessboard.value[i+1][j+1];
}
if((i==0)&(j==14))
{
livingnum=chessboard.value[i][j-1]+chessboard.value[i+1][j-1]+chessboard.value[i+1][j];
}
if((i==14)&(j==0))
{
livingnum=chessboard.value[i-1][j]+chessboard.value[i-1][j+1]+chessboard.value[i-1][j+1];
}
if((i==14)&(j==14))
{
livingnum=chessboard.value[i-1][j-1]+chessboard.value[i-1][j]+chessboard.value[i][j-1];
}
if((i==0)&(j>0)&(j<14))
{
livingnum=chessboard.value[i][j-1]+chessboard.value[i][j+1]+chessboard.value[i+1][j-1]+
chessboard.value[i+1][j]+chessboard.value[i+1][j+1];
}
if((i==14)&(j>0)&(j<14))
{
livingnum=chessboard.value[i][j-1]+chessboard.value[i][j+1]+chessboard.value[i-1][j-1]+
chessboard.value[i-1][j]+chessboard.value[i-1][j+1];
}
if((j==0)&(i>0)&(i<14))
{
livingnum=chessboard.value[i-1][j]+chessboard.value[i+1][j]+chessboard.value[i-1][j+1]+
chessboard.value[i][j+1]+chessboard.value[i+1][j+1];
}
if((j==14)&(i>0)&(i<14))
{
livingnum=chessboard.value[i-1][j]+chessboard.value[i+1][j]+chessboard.value[i-1][j-1]+
chessboard.value[i][j-1]+chessboard.value[i+1][j-1];
}
return livingnum;
}
void Chessboard::print(Chessboard chessboard)
{
cout<<"--------------------------------------"<<endl;
for(int j=0;j<=14;j++)
{
cout<<"|";
for(int j=0;j<=14;j++)
{
cout<<chessboard.state[i][j]<<"";
}
cout<<"|";
cout<<endl;
}
cout<<"-------------------------------------------"<<endl;
}
Chessboard Chessboard::iniboard(Chessboard chessboard)
{
srand((unsigned)time(NULL));
//初始化棋盘,每个棋盘位的细胞随机生死
for(int i=0;i<=14;i++)
{
for(int j=0;j<=14;j++)
{
chessboard.value[i][j]=rand()%2;
if(chessboard.value[i][j]==1)
{
chessboard.state[i][j]='*';
}
else
{
chessboard.state[i][j]'';
}
}
}
return chessboard;
}
//*********依据规则改变棋盘上棋子的状态******************
Chessboard Chessboard::changestate(Chessboard chessboard)
{
for(int i=0;i<=14;i++)
{
for(int j=0;j<=14;j++)
{
switch(chessboard.livingnum(i,j,chessboard))
{
case 3:
chessboard.value[i][j]=1;
chessboard.state[i][j]='*';
break;
case 2:
chessboard.value[i][j]=chessboard.value[i][j];
break;
default:
chessboard.value[i][j]=0
chessboard.state[i][j]='';
}
}
}
return chessboard;
}
#ifndef Chessboard_h_h
#define Chessboard_h_h
class Chessboard
{
public:
char state[15][15];
int value[15][15];
int livngnum(int i,int j,Chessboard chessboard);
void print (Chessboard chessboard);
Chessboard iniboard(Chessboard chessboard);
Chessboard changestate(Chesboard chesboard);
};
#endif