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{