//电脑下棋
void computer()
{
int s;
if (cps==0)
{
while (1)
{
cpx=1+rand()%15;
cpy=1+rand()%15;
if (qipan[cpx][cpy]!='*'&&qipan[cpx][cpy]!='#')
{
cps=1;
srand( (unsigned)time( NULL ) );
qipan[cpx][cpy]=qizi;
cpfx=rand()%8;
break;
}
}
}
else if (cps>=1)
{
if (defence()==false )
if (chessdown()==false )
if (antidown()==false ) computer();
}
}
/7判断
bool succ(int x,int y)
{
int qh,qs,qp,qn,qi;
qh=qs=qp=qn=1;
for (qi=1;qipan[x][y-qi]==qizi;qi++)
qh++;
for (qi=1;qipan[x][y+qi]==qizi;qi++)
qh++;
for (qi=1;qipan[x-qi][y]==qizi;qi++)
qs++;
for (qi=1;qipan[x+qi][y]==qizi;qi++)
qs++;
for (qi=1;qipan[x-qi][y-qi]==qizi;qi++)
qp++;
for (qi=1;qipan[x+qi][y+qi]==qizi;qi++)
qp++;
for (qi=1;qipan[x+qi][y-qi]==qizi;qi++)
qn++;
for (qi=1;qipan[x-qi][y+qi]==qizi;qi++)
qn++;
if (qh>=5||qs>=5||qp>=5||qn>=5)
return true;
else return false;
}
int main()
{
int px,py;
//棋盘空格填充
for (loopa1=0;loopa1<=16;loopa1++)
{
for (loopa2=0;loopa2<16;loopa2++)
{
qipan[loopa1][loopa2]=' ';
}
}
//棋盘坐标填充
for (loopa1=1;loopa1<16;loopa1++)
{
if (loopa1<10)
{
qipan[0][loopa1]='0'+loopa1;
qipan[loopa1][0]='0'+loopa1;
}
else
{
qipan[0][loopa1]='a'+loopa1-10;
qipan[loopa1][0]='a'+loopa1-10;
}
}
putqipan();
while (1)
{
scanf("%x %x",&py,&px);
if ((px>0&&px<=15)&&(py>0&&py<=15))
{
if (qipan[px][py]!='*'&&qipan[px][py]!='#')
{
playx=px;
playy=py;
qipan[px][py]=qizi;
putqipan();
if (succ(px,py)==true )
{
printf("\n%c胜利!",qizi);
break;
}
else
{
if (qizi=='#') qizi='*';
else qizi='#';
computer();
putqipan();
if (succ(cpx,cpy)==true )
{
printf("\n%c胜利!",qizi);
break;
}
else
{
if (qizi=='#') qizi='*';
else qizi='#';
}
}
}
else printf("你不能将棋子放置再已经放棋子的格子上!\n重新输入坐标>>>>>");
}
else printf("请输入合法字符1~9,a~f\n重新输入坐标>>>>>");
}
}
我测试了一下,这个代码运行不了,有些方法好像不在这里呢?
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632