五子棋部分程序,求讲解功能与特色

//电脑下棋

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