#include<iostream.h>
#include<cstdlib>
//棋盘类
class chess
{
char cboard[11][11];
public:
//构造函数
chess() //利用构造函数画个基础棋盘
{
for(int i = 0 ; i<11 ; i++)
运动会英语作文
{
if(i%2==0)
{
去旅游
四川师范大学是一本还是二本for(int j =0 ; j<11 ; j++)
{
cboard[i][j]='-';
}
}
el
for(int j =0 ; j<11 ; j++)
{
if(j%2==0)
{
cboard[i][j]='|';
}
el
{
cboard[i][j]=' ';
}
}
{
}
}
}
//填充棋子的位置
void point(int ihx , int isx , char cxoo ) //根据下棋的位置修改相应的类得数据成员
{
int px,py;
char name;
px=ihx*2-1;
py=isx*2-1;
name=cxoo;
cboard[px][py]=name;
}
//确定该位置是否有棋子
int checkpoint(int ihx , int isx )
{
int px,py;
px=ihx*2-1;
py=isx*2-1;
if(cboard[px][py]=='o'||cboard[px][py]=='x')
{
return 1;
}
el
{
return 0;
}
苹果手机怎么刷机
}
//画棋盘
void drawit()
{
system("cls");
for(int i=0 ; i<11 ; i++)
{
for(int j=0 ; j<11 ; j++)
{
cout<<cboard[i][j];
}
cout<<endl;
}
}
//重载画棋盘函数
void drawit(int jj)
西裤怎么洗{
//不清屏
for(int i=0 ; i<11 ; i++)
{
for(int j=0 ; j<11 ; j++)
{
cout<<cboard[i][j];
}
cout<<endl;
}
}
friend int check(chess &ab , int nandu);
};
int check(chess &ab , int nandu)
{
int bz=1;
switch(nandu)
{
ca 1:
{
if(ab.cboard[1][1]=='o'&&ab.cboard[1][3]=='o'&&ab.cboard[1][5]=='o'&&ab.cboard[1][7]=='o'&&ab.cboard[1][9]=='o')
{
bz=0;
}
el if(ab.cboard[3][1]=='o'&&ab.cboard[3][3]=='o'&&ab.cboard[3][5]=='o'&&ab.cboard[3][7]=='o'&&ab.cboard[3][9]=='o')
{
bz=0;
}
el if(ab.cboard[5][1]=='o'&&ab.cboard[5][3]=='o'&&ab.cboard[5][5]=='o'&&ab.cboard[5][7]=='o'&&ab.cboard[5][9]=='o')
{
bz=0;
}
el if(ab.cboard[7][1]=='o'&&ab.cboard[7][3]=='o'&&ab.cboard[7][5]=='o'&&ab.cboard[7][7]=='o'&&ab.cboard[7][9]=='o')
{
bz=0;
}
el if(ab.cboard[9][1]=='o'&&ab.cboard[9][3]=='o'&&ab.cboard[9][5]=='o'&&ab.cboard[9][7]=='o'&&ab.cboard[9][9]=='o')
{
bz=0;
}
el if(ab.cboard[7][1]=='x'&&ab.cboard[7][3]=='x'&&ab.cboard[7][5]=='x'&&ab.cboard[7][7]=='x'&&ab.cboard[7][9]=='x')
{
bz=0;
}
el if(ab.cboard[5][1]=='x'&&ab.cboard[5][3]=='x'&&ab.cboard[5][5]=='x'&&ab.cboard[5][7]=='x'&&ab.cboard[5][9]=='x')
{
bz=0;
}
el if(ab.cboard[3][1]=='x'&&ab.cboard[3][3]=='x'&&ab.cboard[3][5]=='x'&&ab.cboard[3][7]=='x'&&ab.cboard[3][9]=='x')
{
bz=0;
}
el if(ab.cboard[1][1]=='x'&&ab.cboard[1][3]=='x'&&ab.cboard[1][5]=='x'&&ab.cboard[1][7]=='x'&&ab.
cboard[1][9]=='x')
{
bz=0;
}
el if(ab.cboard[1][1]=='x'&&ab.cboard[3][3]=='x'&&ab.cboard[5][5]=='x'&&ab.cboard[7][7]=='x'&&ab.cboard[9][9]=='x')
{
bz=0;
}
el if(ab.cboard[1][1]=='o'&&ab.cboard[3][3]=='o'&&ab.cboa
rd[5][5]=='o'&&ab.cboard[7][7]=='o'&&ab.cboard[9][9]=='o')
{
bz=0;
}
el if(ab.cboard[1][9]=='x'&&ab.cboard[3][7]=='x'&&ab.cboard[5][5]=='x'&&ab.cboard[7][3]=='x'&&ab.cboard[9][1]=='x')
{
bz=0;
}
el if(ab.cboard[1][9]=='o'&&ab.cboard[3][7]=='o'&&ab.cboard[5][5]=='o'&&ab.cboard[7][3]=='o'&&ab.cboard[9][1]=='o')
{
bz=0;
}
el
{
bz=1;
}
}
break;
ca 2:
if(ab.cboard[1][1]=='x'&&ab.cboard[3][3]=='x'&&ab.cboard[5][5]=='x'&&ab.cboard[7][7]=='x'&&ab.cboard[9][9]=='x')
{
bz=0;
}
el if(ab.cboard[1][1]=='o'&&ab.cboard[3][3]=='o'&&ab.cboard[5][5]=='o'&&ab.cboard[7][7]=='o'&&ab.cboard[9][9]=='o')
{
bz=0;
}
el if(ab.cboard[1][9]=='x'&&ab.cboard[3][7]=='x'&&ab.cboard[5][5]=='x'&&ab.cboard[7][3]=='x'&&ab.cboard[9][1]=='x')
{
bz=0;
}
el if(ab.cboard[1][9]=='o'&&ab.cboard[3][7]=='o'&&ab.cboard[5][5]=='o'&&ab.cboard[7][3]=='o'&&ab.cboard[9][1]=='o')
{
bz=0;
}
el
{
bz=1;
}
break;
ca 3:
if(ab.cboard[1][1]=='x'&&ab.cboard[3][3]=='x'&&ab.cboard[5][5]=='x'&&ab.cboard[7][7]=='x'&&ab.cboard[9][9]=='x'&&ab.cboard[1][9]=='x'&&ab.cboard[3][7]=='x'&&ab.cboard[5][5]=='x'&&ab.cboard[7][3]=='x'&&ab.cboard[9][1]=='x')
{
bz=0;
}
el if(ab.cboard[1][1]=='o'&&ab.cboard[3][3]=='o'&&ab.cboard[5][5]=='o'&&ab.cboard[7][7]=='o'&&ab.cboard[9][9]=='o'&&ab.cboard[1][9]=='o'&&ab.cboard[3][7]=='o'&&ab.cboard[5][5]=='o'&&ab.cboard[7][3]=='o'&&ab.cboard[9][1]=='o')
{
bz=0;
}
el
{
bz=1;
}
break;
}
return bz;/*返回1,说明没有人胜出。返回0,说明有人胜出。*/
}
//随机获得一个数
int getrandint(int min , int max)
{
int num ;
num=rand();
num=num%(max-min+1)+min;
return num;
}
int main ()
{
int pox , poy , nandu ;
char bz;
char xpoint , ypoint;
chess aboard; //定义一个chess的对象aborad
cout<<"---------------游戏规则和胜利条件-------------------"<<endl;
cout<<" 选择难度(1):两个斜对角线之一都为X或O,则获胜。一横行都为X或O则获胜。一竖行都为X或O则获胜。"<<endl;
cout<<" 选择难度(2):两个斜对角线之一都为X或O,则获胜。"<<endl;
报关员培训
cout<<" 选择难度(3):两个斜对角线都为X或O,则获胜。"<<endl;
cout<<" 输入必须为一个两位整数,如11,代表棋盘第一行第一列,输完后按回车键。"<<endl;
cout<<endl;
cout<<endl;
cout<<"简单---------1"<<endl;
cout<<"中等---------2"<<endl;
cout<<"困难---------3"<<endl;
cout<<"请选择难度:";
cin>>nandu;
system("cls");
aboard.drawit(1);
for(int count = 0 ; count<25&&check(aboard,nandu) ; count++) //一共有25个空,所以循环25次。25此结束后获得结果
{
if((count%2)==0)
{
cout<<"请输入一个两位整数,并按enter键确定!"<<endl;
cin>>xpoint>>ypoint;
pox=int(xpoint-'0');
poy=int(ypoint-'0');
while(aboard.c
heckpoint(pox,poy))
{
cout<<"请重新输入一个两位整数,并按enter键确定!"<<endl;
cin>>xpoint>>ypoint;
pox=int(xpoint-'0');
poy=int(ypoint-'0');
}
aboard.point(pox,poy,'o');
aboard.drawit();
bz='o';
}
el
{
pox=getrandint(1,5);
poy=getrandint(1,5);
while(aboard.checkpoint(pox,poy))深圳市小汽车
{
pox=getrandint(1,5);
poy=getrandint(1,5);
}
aboard.point(pox,poy,'x');
aboard.drawit();
bz='x';
}
}
if(check(aboard,nandu)==0)
{
if(bz=='o')
{
cout<<"=============================="<<endl;
cout<<"==== 玩家获胜! ===="<<endl;
cout<<"==== 恭喜您! ===="<<endl;
家庭披萨cout<<"=============================="<<endl;
}
el
{
cout<<"=============================="<<endl;
cout<<"==== 电脑获胜! ===="<<endl;
cout<<"==== 很遗憾! ===="<<endl;
cout<<"=============================="<<endl;
}
}
el
{
cout<<"=============================="<<endl;
cout<<"==== 和棋! ===="<<endl;
cout<<"=============================="<<endl;
}
return 0;
}