C++象棋代码 (控制台版)

C++象棋代码  在win7写的 

如果有疑问可以在评论区问 有bug也可以在评论区反馈 我会不定期修复的

下面上代码:

#include <windows.h>
#include <string>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    void Chinese_chees_Int_H_class_main();
    Chinese_chees_Int_H_class_main();
    return 0;
}
 void Chinese_chees_Int_H_class_main(){
    a7a1a:
     int Ch_chess_Int_H_class_using_w=7;
     int Ch_chess_Int_H_class_cin_Int,Ch_chess_Int_H_class_cin_Int_startxy,Ch_chess_Int_H_class_cin_Int_startx,Ch_chess_Int_H_class_cin_Int_starty;
     int Ch_chess_Int_H_class_cin_Int_endx,Ch_chess_Int_H_class_cin_Int_endxy,Ch_chess_Int_H_class_cin_Int_endy,Ch_chess_Int_H_class_cin_homepage;
     int Ch_chess_Int_H_class_cin_Int_dostepx,Ch_chess_Int_H_class_cin_Int_dostepy,Ch_chess_Int_H_class_cin_Int_Variable_1=0;
     unsigned long long Ch_chess_Int_H_class_mistaketimes=18446744073709551615,Ch_chess_Int_H_class_mistaketimes_notchange=18446744073709551615,Ch_chess_Int_H_class_backstep,Ch_chess_Int_H_class_turn=0;//无符号整型最大数值,即(2^64-1)
     char Ch_chess_Int_H_class_cin_other;
     system("chcp 936");
     system("title C++象棋v1.0 由4ac264fad1c07efb6597编写并开源");
     struct Ch_chess_Int_H_class_chessboardstruct_y_int
     {
         const string Ch_chess_Int_H_class_chessboardEmptyshow_x[9];
         int Ch_chess_Int_H_class_chessin_x[9];
         const int Ch_chess_Int_H_class_chessboardid_x[9];
     };
     struct Ch_chess_Int_H_class_chessstruct
     {
         const string Ch_chess_Int_H_class_chessshow;
         const int Ch_chess_Int_H_class_chessid;
     };
     Ch_chess_Int_H_class_chessstruct Ch_chess_Int_H_class_RED_chess[8]
     {
         {"",0},{"车",1},{"马",2},{"象",3},{"士",4},{"将",5},{"炮",6},{"卒",7}
     };
     Ch_chess_Int_H_class_chessstruct Ch_chess_Int_H_class_BLACK_chess[8]
     {
         {"",0},{"車",1},{"马",2},{"相",3},{"仕",4},{"帅",5},{"砲",6},{"兵",7}
     };
     Ch_chess_Int_H_class_chessboardstruct_y_int Ch_chess_Int_H_class_chessboardstruct_y[10]=
     {
         { {"┌","┬","┬","╔","╦","╗","┬","┬","┐"},{-1,-2,-3,-4,-5,-4,-3,-2,-1},{0,1,2,3,4,5,6,7,8}},
         { {"├","┼","┼","╠","╬","╣","┼","┼","┤"},{0,0,0,0,0,0,0,0,0},{10,11,12,13,14,15,16,17,18}},
         { {"├","╬","┼","╚","╩","╝","┼","╬","┤"},{0,-6,0,0,0,0,0,-6,0},{20,21,22,23,24,25,26,27,28}},
         { {"╠","┼","╬","┼","╬","┼","╬","┼","╣"},{-7,0,-7,0,-7,0,-7,0,-7},{30,31,32,33,34,35,36,37,38}},
         { {"├","┴","┴","┴","┴","┴","┴","┴","┤"},{0,0,0,0,0,0,0,0,0},{40,41,42,43,44,45,46,47,48}},
         { {"├","┬","┬","┬","┬","┬","┬","┬","┤"},{0,0,0,0,0,0,0,0,0},{50,51,52,53,54,55,56,57,58}},
         { {"╠","┼","╬","┼","╬","┼","╬","┼","╣"},{7,0,7,0,7,0,7,0,7},{60,61,62,63,64,65,66,67,68}},
         { {"├","╬","┼","╔","╦","╗","┼","╬","┤"},{0,6,0,0,0,0,0,6,0},{70,71,72,73,74,75,76,77,78}},
         { {"├","┼","┼","╠","╬","╣","┼","┼","┤"},{0,0,0,0,0,0,0,0,0},{80,81,82,83,84,85,86,87,88}},
         { {"└","┴","┴","╚","╩","╝","┴","┴","┘"},{1,2,3,4,5,4,3,2,1},{90,91,92,93,94,95,96,97,98}}
     };
     a7a1b:
     system("cls");
     int a7a1ba=0,a7a1bb=0;
     Ch_chess_Int_H_class_turn=Ch_chess_Int_H_class_turn+1;
     cout<<"第"<<Ch_chess_Int_H_class_turn<<"回合   ";
     if(Ch_chess_Int_H_class_turn%2==0){
         cout<<"黑方执棋";
     }else{
         cout<<"红方执棋";
     }
     cout<<"\n    0 1 2 3 4 5 6 7 8\n  黑黑黑黑黑黑黑黑黑黑黑  \n";
     do{
         cout<<a7a1bb<<" ";
         if(a7a1bb<=4){
             cout<<"黑";
         }else{
             cout<<"红";
         }
         do{
             if(Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]==0){
                 cout<<Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessboardEmptyshow_x[a7a1ba];
                 if(Ch_chess_Int_H_class_using_w==10){
                     cout<<" ";
                 }
             }else{
                 if(Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]>=1){
                     cout<<Ch_chess_Int_H_class_RED_chess[Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]].Ch_chess_Int_H_class_chessshow;
                 }
                 if(Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]<=-1){
                     cout<<Ch_chess_Int_H_class_BLACK_chess[(0-Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba])].Ch_chess_Int_H_class_chessshow;
                 }
             }
             a7a1ba=a7a1ba+1;
         }while(a7a1ba<=8);
         a7a1ba=0;
         if(a7a1bb<=4){
             cout<<"黑";
         }else{
             cout<<"红";
         }
         cout<<endl;
         a7a1bb=a7a1bb+1;
     }while(a7a1bb<=9);
     cout<<"  红红红红红红红红红红红\n";
     a7a1c1:
     if(Ch_chess_Int_H_class_turn==1){
         cout<<"\n源代码由网站优快云的用户4ac264fad1c07efb6597编写并开源\n\n提示:输入-256可以重新输入 双方输入-128为和棋 单方输入-64为认输 \n     按横竖的方式输入\n     先输起始棋子坐标 再输目的地坐标\n     如:01 02\n\n";
     }
     if(Ch_chess_Int_H_class_mistaketimes==0){
         cout<<"\n你错误输入了18446744073709551615(即2^64-1)次!!!\n";
     }
     a7a1c2:
     int a7a1bc=0,a7a1bd=0;
     a7a1ba=3;
     a7a1bb=7;
     do{
         do{
             if(Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]==5){
                 a7a1bc=1;
             }
             if(Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]==-5){
                 a7a1bd=1;
             }
             a7a1ba=a7a1ba+1;
         }while(a7a1ba<=6);
         a7a1ba=3;
         a7a1bb=a7a1bb+1;
     }while(a7a1bb<=9);
     a7a1ba=3;
     a7a1bb=0;
     do{
         do{
             if(Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]==-5){
                 a7a1bd=1;
             }
             if(Ch_chess_Int_H_class_chessboardstruct_y[a7a1bb].Ch_chess_Int_H_class_chessin_x[a7a1ba]==5){
                 a7a1bc=1;
             }
             a7a1ba=a7a1ba+1;
         }while(a7a1ba<=6);
         a7a1ba=3;
         a7a1bb=a7a1bb+1;
     }while(a7a1bb<=2);
     if((a7a1bc==0) and (a7a1bd==1)){
         cout<<"\n黑方获胜!\n";
         system("pause");
         return;
     }
     if((a7a1bc==1) and (a7a1bd==0)){
         cout<<"\n红方获胜!\n";
         system("pause");
         return;
     }
     int a7a1be=0,a7a1bf=0;
     a7a1c3:
     cin.sync();
     cin.clear();
     cout<<"\n起始坐标>";
     cin>>Ch_chess_Int_H_class_cin_Int_startxy;
     if(Ch_chess_Int_H_class_cin_Int_startxy==-256){
         goto a7a1c3;
     }
     if(Ch_chess_Int_H_class_cin_Int_startxy==-128){
         cout<<"\n确定和棋输入-128\n";
         a7a1bf=a7a1bf+1;
         if(a7a1bf==2){
             cout<<"\n平局!\n";
             system("pause");
             return;
         }
         goto a7a1c3;
     }
     if(Ch_chess_Int_H_class_cin_Int_startxy==-64){
         cout<<"\n确定认输输入-64\n";
         a7a1be=a7a1be+1;
         if(a7a1be==2){
             if(Ch_chess_Int_H_class_turn%2==0){
                 cout<<"\n红方获胜!\n";
                 system("pause");
                 return;
             }else{
                 cout<<"\n黑方获胜!\n";
                 system("pause");
                 return;
             }
         }
         goto a7a1c3;
     }
     cout<<"\n目标坐标>";
     cin>>Ch_chess_Int_H_class_cin_Int_endxy;
     if(Ch_chess_Int_H_class_cin_Int_endxy==-256){
         goto a7a1c3;
     }
     if(Ch_chess_Int_H_class_cin_Int_endxy==-128){
         cout<<"\n确定和棋输入-128\n";
         a7a1bf=a7a1bf+1;
         if(a7a1bf==2){
             cout<<"\n平局!\n";
             system("pause");
             return;
         }
         goto a7a1c3;
     }
     if(Ch_chess_Int_H_class_cin_Int_endxy==-64){
         cout<<"\n确定认输输入-64\n";
         a7a1be=a7a1be+1;
         if(a7a1be==2){
             if(Ch_chess_Int_H_class_turn%2==0){
                 cout<<"\n红方获胜!\n";
                 system("pause");
                 return;
             }else{
                 cout<<"\n黑方获胜!\n";
                 system("pause");
                 return;
             }
         }
         goto a7a1c3;
     }
     Ch_chess_Int_H_class_cin_Int_starty=Ch_chess_Int_H_class_cin_Int_startxy/10;
     Ch_chess_Int_H_class_cin_Int_startx=Ch_chess_Int_H_class_cin_Int_startxy-(Ch_chess_Int_H_class_cin_Int_startxy/10)*10;
     Ch_chess_Int_H_class_cin_Int_endy=Ch_chess_Int_H_class_cin_Int_endxy/10;
     Ch_chess_Int_H_class_cin_Int_endx=Ch_chess_Int_H_class_cin_Int_endxy-(Ch_chess_Int_H_class_cin_Int_endxy/10)*10;
     if(Ch_chess_Int_H_class_cin_Int_startxy>=100 or Ch_chess_Int_H_class_cin_Int_startxy<0 or Ch_chess_Int_H_class_cin_Int_endxy>=100 or Ch_chess_Int_H_class_cin_Int_endxy<0 or Ch_chess_Int_H_class_cin_Int_startxy==Ch_chess_Int_H_class_cin_Int_endxy or Ch_chess_Int_H_class_cin_Int_startx==9 or Ch_chess_Int_H_class_cin_Int_endx==9){
         cout<<"\n无效的坐标输入!\n";
         Sleep(1500);
         Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
         goto a7a1c2;
     }
     a7a1d:
     if(Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_startx]==0){
         cout<<"\n没有棋子可供移动!\n";
         Sleep(1500);
         Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
         goto a7a1c2;
     }
     if(Ch_chess_Int_H_class_turn%2==0 and (Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_startx]>=1)){
         cout<<"\n轮到黑方执棋!\n";
         Sleep(1500);
         Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
         goto a7a1c2;
     }
     if(Ch_chess_Int_H_class_turn%2==1 and (Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_startx]<=-1)){
         cout<<"\n轮到红方执棋!\n";
         Sleep(1500);
         Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
         goto a7a1c2;
     }
     a7a1e:
     if(Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_startx]==1){
         if(!((Ch_chess_Int_H_class_cin_Int_startx-Ch_chess_Int_H_class_cin_Int_endx)*(Ch_chess_Int_H_class_cin_Int_starty-Ch_chess_Int_H_class_cin_Int_endy))==0){
             cout<<"\n未走直线!\n";
             Sleep(1500);
             Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
             goto a7a1c2;
         }
         if((Ch_chess_Int_H_class_cin_Int_starty-Ch_chess_Int_H_class_cin_Int_endy)==0){
             if(Ch_chess_Int_H_class_cin_Int_startx<Ch_chess_Int_H_class_cin_Int_endx){
                 Ch_chess_Int_H_class_cin_Int_dostepx=Ch_chess_Int_H_class_cin_Int_startx+1;
                 do{
                     if(!(Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_dostepx]==0)){
                         if(!(Ch_chess_Int_H_class_cin_Int_dostepx==Ch_chess_Int_H_class_cin_Int_endx)){
                             cout<<"\n路径上有棋子!\n";
                             Sleep(1500);
                             Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
                             goto a7a1c2;
                         }        
                     }
                     Ch_chess_Int_H_class_cin_Int_dostepx=Ch_chess_Int_H_class_cin_Int_dostepx+1;
                 }while(Ch_chess_Int_H_class_cin_Int_dostepx<Ch_chess_Int_H_class_cin_Int_endx);
                 if(Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_endy].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_endx]>=1){
                     cout<<"\n目标上有己方棋子!\n";
                     Sleep(1500);
                     Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
                     goto a7a1c2;
                 }
                 Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_startx]=0;
                 Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_endy].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_endx]=1;
                 goto a7a1b;
             }
             if(Ch_chess_Int_H_class_cin_Int_startx>Ch_chess_Int_H_class_cin_Int_endx){
                 Ch_chess_Int_H_class_cin_Int_dostepx=Ch_chess_Int_H_class_cin_Int_startx-1;
                 do{
                     if(!(Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_dostepx]==0)){
                         if(!(Ch_chess_Int_H_class_cin_Int_dostepx==Ch_chess_Int_H_class_cin_Int_endx)){
                             cout<<"\n路径上有棋子!\n";
                             Sleep(1500);
                             Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
                             goto a7a1c2;
                         }
                     }
                     Ch_chess_Int_H_class_cin_Int_dostepx=Ch_chess_Int_H_class_cin_Int_dostepx-1;
                 }while(Ch_chess_Int_H_class_cin_Int_dostepx>Ch_chess_Int_H_class_cin_Int_endx);
                 if(Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_endy].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_endx]>=1){
                     cout<<"\n目标上有己方棋子!\n";
                     Sleep(1500);
                     Ch_chess_Int_H_class_mistaketimes=Ch_chess_Int_H_class_mistaketimes-1;
                     goto a7a1c2;
                 }
                 Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_starty].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_startx]=0;
                 Ch_chess_Int_H_class_chessboardstruct_y[Ch_chess_Int_H_class_cin_Int_endy].Ch_chess_Int_H_class_chessin_x[Ch_chess_Int_H_class_cin_Int_endx]=1;
                 goto a7a1b;
             }
         }
         if((Ch_chess_Int_H_class_cin_Int_startx-Ch_chess_Int_H_class_cin_Int_endx)==0){
             if(Ch_chess_Int_H_class_cin_Int_starty<Ch_chess_Int_H_class_cin_Int_endy){
                 Ch_chess_Int_H_class_cin_Int_dostepy=Ch_chess_Int_H_class_cin_Int_starty+1;
                 do{
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值