📄 ch_4u.cpp
字号:
{
g[0][2]=1;
i=0;
j=2;
}
if(g[1][1]==0)
{
g[1][1]=1;
i=1;
j=1;
}
if(g[2][0]==0)
{
g[2][j]=1;
i=2;
j=0;
}
}
}
//------------------------------------------------------------------------------------------------------
void ctn() //判定胜败的收官函数
{
if(g[0][0]+g[0][1]+g[0][2]==15 || g[1][0]+g[1][1]+g[1][2]==15|| //挑战者败
g[2][0]+g[2][1]+g[2][2]==15 || g[0][0]+g[1][0]+g[2][0]==15||
g[0][1]+g[1][1]+g[2][1]==15 || g[0][2]+g[1][2]+g[2][2]==15||
g[0][0]+g[1][1]+g[2][2]==15 || g[0][2]+g[1][1]+g[2][0]==15 )
{
sg->g00->Enabled=false; //将所有九宫按键功能关闭
sg->g01->Enabled=false;
sg->g02->Enabled=false;
sg->g10->Enabled=false;
sg->g11->Enabled=false;
sg->g12->Enabled=false;
sg->g20->Enabled=false;
sg->g21->Enabled=false;
sg->g22->Enabled=false;
sg->to2->Enabled=true;; //启动挑战者战胜画面
h=0;
return;
}
if(g[0][0]+g[0][1]+g[0][2]==3 || g[1][0]+g[1][1]+g[1][2]==3|| //电脑胜
g[2][0]+g[2][1]+g[2][2]==3 || g[0][0]+g[1][0]+g[2][0]==3||
g[0][1]+g[1][1]+g[2][1]==3 || g[0][2]+g[1][2]+g[2][2]==3||
g[0][0]+g[1][1]+g[2][2]==3 || g[0][2]+g[1][1]+g[2][0]==3 )
{
sg->g00->Enabled=false; //将所有九宫按键功能关闭
sg->g01->Enabled=false;
sg->g02->Enabled=false;
sg->g10->Enabled=false;
sg->g11->Enabled=false;
sg->g12->Enabled=false;
sg->g20->Enabled=false;
sg->g21->Enabled=false;
sg->g22->Enabled=false;
sg->to1->Enabled=true;; //启动挑战者战败画面
h=0;
}
}
//------------------------------------------------------------------------------------------------------
void hmy() //合局
{
sg->g00->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g01->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g02->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g10->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g11->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g12->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g20->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g21->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g22->Glyph->LoadFromFile("\graph\\dogfall.bmp");
sg->g00->Enabled=false; //关闭九宫按键的功能
sg->g01->Enabled=false;
sg->g02->Enabled=false;
sg->g10->Enabled=false;
sg->g11->Enabled=false;
sg->g12->Enabled=false;
sg->g20->Enabled=false;
sg->g21->Enabled=false;
sg->g22->Enabled=false;
sg->start->Enabled=true;
ok=true;
h=0;
}
//------------------------------------------------------------------------------------------------------
void go() //执行策略,落子
{ //i为九宫棋x座标,j为y座标;两者皆为窗体变量
if(i==0 && j==0) //左上角点
{
sg->g00->Glyph->LoadFromFile("\graph\\computer.BMP");//设定电脑下棋图案
sg->g00->Enabled=false; //关闭该件功能
g[0][0]=1; //存储相对位置于数组
i=-1;j=-1;
ctn(); //调用决胜函数
ok=true;
return;
}
if(i==0 && j==1) //上角点
{
sg->g01->Glyph->LoadFromFile("\graph\\computer.BMP");
sg->g01->Enabled=false;
g[0][1]=1;
i=-1;j=-1;
ctn();
ok=true;
return;
}
if(i==0 && j==2) //右上角点
{
sg->g02->Glyph->LoadFromFile("\graph\\computer.BMP");
sg->g02->Enabled=false;
g[0][2]=1;
i=-1;j=-1;
ctn();
ok=true;
return;
}
if(i==1 && j==0) //左角点
{
sg->g10->Glyph->LoadFromFile("\graph\\computer.BMP");
sg->g10->Enabled=false;
g[1][0]=1;
i=-1;j=-1;
ctn();
ok=true;
return;
}
if(i==1 && j==2) //右角点
{
sg->g12->Glyph->LoadFromFile("\graph\\computer.BMP");
sg->g12->Enabled=false;
g[1][2]=1;
i=-1;j=-1;
ctn();
ok=true;
return;
}
if(i==2 && j==0) //左下角点
{
sg->g20->Glyph->LoadFromFile("\graph\\computer.BMP");
sg->g20->Enabled=false;
g[2][0]=1;
i=-1;j=-1;
ctn();
ok=true;
return;
}
if(i==2 && j==1) //下角点
{
sg->g21->Glyph->LoadFromFile("\graph\\computer.BMP");
sg->g21->Enabled=false;
g[2][1]=1;
i=-1;j=-1;
ctn();
ok=true;
return;
}
if(i==2 && j==2) //右下角点
{
sg->g22->Glyph->LoadFromFile("\graph\\computer.BMP");
sg->g22->Enabled=false;
g[2][2]=1;
i=-1;j=-1;
ctn();
ok=true;
return;
}
}
//------------------------------------------------------------------------------------------------------
void __fastcall Tsg::g02Click(TObject *Sender)
{
h++; //用户落手数加1
ok=false; //设置电脑未下
g[0][2]=5; //用户数组值为5
g02->Glyph->LoadFromFile("\graph\\person.bmp"); //挑战者代表图案
g02->Default;
g02->Enabled=false; //关闭该键功能
atk(); pvt(); ctn(); //调用判断函数与收官
if(h==1)
fsh(3); //第一手应棋
go(); //执行判断函数
if(ok==false && h<4)
any(); //调用随机函数
if(h==4)
hmy(); //调用和棋函数
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g01Click(TObject *Sender)
{
h++;
ok=false;
g[0][1]=5;
g01->Glyph->LoadFromFile("\graph\\person.bmp");
g01->Enabled=false;
atk(); pvt(); ctn();
if(h==1)
fsh(2);
go(); //运行判断函数
if(h==2 && ok==false)
sch(2);
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g00Click(TObject *Sender)
{
h++;
ok=false;
g[0][0]=5;
g00->Glyph->LoadFromFile("\graph\\person.bmp");
g00->Enabled=false;
atk(); pvt(); ctn();
if(h==1)
fsh(1);
go(); //运行判断函数
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g22Click(TObject *Sender)
{
h++;
ok=false;
g[2][2]=5;
g22->Glyph->LoadFromFile("\graph\\person.bmp");
g22->Enabled=false;
atk(); pvt() ;ctn();
if(h==1)
fsh(9);
go(); //运行判断函数
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g20Click(TObject *Sender)
{
h++;
ok=false;
g[2][0]=5;
g20->Glyph->LoadFromFile("\graph\\person.bmp");
g20->Enabled=false;
atk(); pvt(); ctn();
if(h==1)
fsh(7);
go(); //运行判断函数
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g12Click(TObject *Sender)
{
h++;
ok=false;
g[1][2]=5;
g12->Glyph->LoadFromFile("\graph\\person.bmp");
g12->Enabled=false;
atk(); pvt(); ctn();
if(h==1)
fsh(6);
go(); //运行判断函数
if(h==2 && ok==false)
sch(6);
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g10Click(TObject *Sender)
{
h++;
ok=false;
g[1][0]=5;
g10->Glyph->LoadFromFile("\graph\\person.bmp");
g10->Enabled=false;
atk(); pvt(); ctn();
if(h==1)
fsh(4);
go(); //运行判断函数
if(h==2 && ok==false)
sch(4);
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g21Click(TObject *Sender)
{
h++;
ok=false;
g[2][1]=5;
g21->Glyph->LoadFromFile("\graph\\person.bmp");
g21->Enabled=false;
atk(); pvt(); ctn();
if(h==1)
fsh(8);
go(); //运行判断函数
if(h==2 && ok==false)
sch(8);
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
void __fastcall Tsg::to1Timer(TObject *Sender)
{
switch(n)
{
case 0: //由外而内逐一变成战败画面
g00->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 1:
g01->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 2:
g02->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 3:
g12->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 4:
g22->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 5:
g21->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 6:
g20->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 7:
g10->Glyph->LoadFromFile("\graph\\defeat.bmp");
break;
case 8:
g11->Glyph->LoadFromFile("\graph\\defeat.bmp");
to1->Enabled=false; //关闭战败画面功能
sg->start->Enabled=true; //游戏开始钮功能开启
n=-1; //计数器设为初值
break;
}
n++; //计数器加1
}
//---------------------------------------------------------------------------
void __fastcall Tsg::to2Timer(TObject *Sender)
{
switch(n)
{
case 0: //由外而内逐一变成战胜画面
g00->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 1:
g01->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 2:
g02->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 3:
g12->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 4:
g22->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 5:
g21->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 6:
g20->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 7:
g10->Glyph->LoadFromFile("\graph\\success.bmp");
break;
case 8:
g11->Glyph->LoadFromFile("\graph\\success.bmp");
to2->Enabled=false; //关闭战胜动画
sg->start->Enabled=true;
n=-1;
v++; //战胜计数器加1
break;
}
n++;
}
//---------------------------------------------------------------------------
void __fastcall Tsg::g11Click(TObject *Sender)
{
h++;
ok=false;
g[1][1]=5;
g11->Glyph->LoadFromFile("\graph\\person.bmp");
g11->Enabled=false;
atk(); pvt(); ctn();
if(h==1)
fsh(5);
go(); //运行判断函数
if(h==2 && ok==false)
sch(5);
if(ok==false && h<4)
any();
if(h==4)
hmy();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -