demo.h
来自「在VC环境下用C++语言编写的一字棋小程序」· C头文件 代码 · 共 86 行
H
86 行
#include "itc.h"
class demo : public Tic
{
public:
demo()
{
}
bool Judge()
{
int i,j,a=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(States[0].QP[i][j]==0) a++;
if(a==0)return true;
return false;
}
virtual bool AutoDone() //此处为学生实现代码
{ int a,b,i,j,m,n,max,min,x,y;
if(IsWin(States[0])==-1)
{
cout<<"恭喜您获胜!"<<endl;
return true;
}
a=0,b=0;
max=-10000;
for(x=0;x<3;x++)
for(y=0;y<3;y++)
States[11].QP[x][y]=States[0].QP[x][y];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(States[0].QP[i][j]==0)
{ a=1;
for(x=0;x<3;x++)
for(y=0;y<3;y++)
States[a].QP[x][y]=States[0].QP[x][y];
States[a].QP[i][j]=1;
min=10000;
for(m=0;m<3;m++)
for(n=0;n<3;n++)
{
if(States[a].QP[m][n]==0)
{ b=1;
for(x=0;x<3;x++)
for(y=0;y<3;y++)
States[10].QP[x][y]=States[a].QP[x][y];
States[10].QP[m][n]=-1;
States[10].e_fun=e_fun(States[10]);
// if(States[10].e_fun==NO_BLANK) States[10].e_fun=-1;
if(States[10].e_fun<min) min=States[10].e_fun;
}
}
States[a].e_fun=min;
if(States[a].e_fun>max)
{ max=States[a].e_fun;
for(x=0;x<3;x++)
for(y=0;y<3;y++)
States[11].QP[x][y]=States[a].QP[x][y];
}
}
}
for(x=0;x<3;x++)
for(y=0;y<3;y++)
States[0].QP[x][y]=States[11].QP[x][y];
cout<<"计算机走棋"<<endl;
PrintQP();
if(IsWin(States[0])==1)
{
cout<<"抱歉你输了,计算机获胜!"<<endl;
return true;
}
else if(IsWin(States[0])==-1)
{
cout<<"恭喜您获胜!"<<endl;
return true;
}
return false;
}
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?