#include <iostream>
#include <cstdlib>
#include <cmath>
#include <windows.h>
using namespace std;
int AXIS[8][8]=
{{338,334,322,337,331,322,334,338},
{336,336,336,336,336,336,336,336},
{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},
{80,80,80,80,80,80,80,80},
{82,78,66,81,75,66,78,82}};
short Y_AXIS_1,Y_AXIS_2,LOOP_1,LOOP_2,LOOP_3;
char X_AXIS_1,X_AXIS_2;
bool LOOP_4;
void FUNCTION_SWHICH(void)
{
AXIS[Y_AXIS_2][X_AXIS_2]=AXIS[Y_AXIS_1][X_AXIS_1];
AXIS[Y_AXIS_1][X_AXIS_1]=0;
}
void FUNCTION_P_WHITE(void)
{
if(Y_AXIS_1 == 1 && X_AXIS_1 == X_AXIS_2 && AXIS[Y_AXIS_2][X_AXIS_2] == 0)
{
if(Y_AXIS_2 == 2 || Y_AXIS_2 == 3)
{
FUNCTION_SWHICH();
}
}
else if(X_AXIS_1 == X_AXIS_2 && AXIS[Y_AXIS_2][X_AXIS_2] == 0)
{
if(Y_AXIS_2 == Y_AXIS_1)
{
FUNCTION_SWHICH();
}
}
else if(X_AXIS_2 == X_AXIS_1 || X_AXIS_2 == X_AXIS_1+1)
{
if(AXIS[Y_AXIS_2][X_AXIS_2] != 0)
{
if(Y_AXIS_2 == Y_AXIS_1)
{
FUNCTION_SWHICH();
}
}
}
}
void FUNCTION_P_BLACK(void)
{
if(Y_AXIS_1 == 6 && X_AXIS_1 == X_AXIS_2 && AXIS[Y_AXIS_2][X_AXIS_2] == 0)
{
if(Y_AXIS_2 == 4 || Y_AXIS_2 == 5)
{
FUNCTION_SWHICH();
}
}
else if(X_AXIS_1 == X_AXIS_2 && AXIS[Y_AXIS_2][X_AXIS_2] == 0)
{
if(Y_AXIS_2+1 == Y_AXIS_1)
{
FUNCTION_SWHICH();
}
}
else if(X_AXIS_2 == X_AXIS_1 || X_AXIS_2 == X_AXIS_1+1)
{
if(AXIS[Y_AXIS_2][X_AXIS_2] != 0)
{
if(Y_AXIS_2+1 == Y_AXIS_1)
{
FUNCTION_SWHICH();
}
}
}
}
void FUNCTION_R(void)
{
if(X_AXIS_1 == X_AXIS_2)
{
if(Y_AXIS_1-Y_AXIS_2 < 0)
{
for(LOOP_1=1;LOOP_1 <= Y_AXIS_2-Y_AXIS_1;LOOP_1++)
{
if(AXIS[Y_AXIS_1+LOOP_1][X_AXIS_1] == 0)
{
AXIS[Y_AXIS_1+LOOP_1-1][X_AXIS_1]=0;
AXIS[Y_AXIS_1+LOOP_1][X_AXIS_2]=338;
}
else
{
AXIS[Y_AXIS_1+LOOP_1-1][X_AXIS_1]=0;
AXIS[Y_AXIS_1+LOOP_1][X_AXIS_2]=338;
break;
}
}
}
if(Y_AXIS_1-Y_AXIS_2 > 0)
{
for(LOOP_1=1;LOOP_1 <= Y_AXIS_1-Y_AXIS_2;LOOP_1++)
{
if(AXIS[Y_AXIS_1-LOOP_1][X_AXIS_1] == 0)
{
AXIS[Y_AXIS_1-LOOP_1+1][X_AXIS_1]=0;
AXIS[Y_AXIS_1-LOOP_1][X_AXIS_2]=338;
}
else
{
AXIS[Y_AXIS_1-LOOP_1+1][X_AXIS_1]=0;
AXIS[Y_AXIS_1-LOOP_1][X_AXIS_2]=338;
break;
}
}
}
}
if(Y_AXIS_1 == Y_AXIS_2)
{
if(X_AXIS_1-X_AXIS_2 < 0)
{
for(LOOP_1=1;LOOP_1 <= X_AXIS_2-X_AXIS_1;LOOP_1++)
{
if(AXIS[Y_AXIS_1][X_AXIS_1+LOOP_1] == 0)
{
AXIS[Y_AXIS_1][X_AXIS_1+LOOP_1-1]=0;
AXIS[Y_AXIS_2][X_AXIS_1+LOOP_1]=338;
}
else
{
AXIS[Y_AXIS_1][X_AXIS_1+LOOP_1-1]=0;
AXIS[Y_AXIS_2][X_AXIS_1+LOOP_1]=338;
break;
}
}
}
if(X_AXIS_1-X_AXIS_2 > 0)
{
for(LOOP_1=1;LOOP_1 <= X_AXIS_1-X_AXIS_2;LOOP_1++)
{
if(AXIS[Y_AXIS_1][X_AXIS_1-LOOP_1] == 0)
{
AXIS[Y_AXIS_1][X_AXIS_1-LOOP_1+1]=0;
AXIS[Y_AXIS_2][X_AXIS_1-LOOP_1]=338;
}
else
{
AXIS[Y_AXIS_1][X_AXIS_1-LOOP_1+1]=0;
AXIS[Y_AXIS_2][X_AXIS_1-LOOP_1]=338;
break;
}
}
}
}
}
void FUNCTION_N(void)
{
if(X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1-2 || X_AXIS_2 == X_AXIS_1+1 && Y_AXIS_2 == Y_AXIS_1-2)
{
FUNCTION_SWHICH();
}
else if(X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1+2 || X_AXIS_2 == X_AXIS_1+1 && Y_AXIS_2 == Y_AXIS_1+2)
{
FUNCTION_SWHICH();
}
else if(Y_AXIS_2 == Y_AXIS_1 && X_AXIS_2 == X_AXIS_1-2 || Y_AXIS_2 == Y_AXIS_1+1 && X_AXIS_2 == X_AXIS_1-2)
{
FUNCTION_SWHICH();
}
else if(Y_AXIS_2 == Y_AXIS_1 && X_AXIS_2 == X_AXIS_1+2 || Y_AXIS_2 == Y_AXIS_1+1 && X_AXIS_2 == X_AXIS_1+2)
{
FUNCTION_SWHICH();
}
}
void FUNCTION_B(void)
{
if(Y_AXIS_2-Y_AXIS_1 < 0)
{
if(X_AXIS_2-X_AXIS_1 < 0)
{
for(LOOP_1=1;LOOP_1 <= sqrt((X_AXIS_1-X_AXIS_2)*(Y_AXIS_1-Y_AXIS_2));LOOP_1++)
{
if(AXIS[Y_AXIS_1-LOOP_1][X_AXIS_1-LOOP_1] == 0)
{
AXIS[Y_AXIS_1-LOOP_1+1][X_AXIS_1-LOOP_1+1]=0;
AXIS[Y_AXIS_1-LOOP_1][X_AXIS_1-LOOP_1]=322;
}
else
{
AXIS[Y_AXIS_1-LOOP_1+1][X_AXIS_1-LOOP_1+1]=0;
AXIS[Y_AXIS_1-LOOP_1][X_AXIS_1-LOOP_1]=322;
break;
}
}
}
if(X_AXIS_2-X_AXIS_1 > 0)
{
for(LOOP_1=1;LOOP_1 <= sqrt((X_AXIS_2-X_AXIS_1)*(Y_AXIS_1-Y_AXIS_2));LOOP_1++)
{
if(AXIS[Y_AXIS_1-LOOP_1][X_AXIS_1+LOOP_1] == 0)
{
AXIS[Y_AXIS_1-LOOP_1+1][X_AXIS_1+LOOP_1-1]=0;
AXIS[Y_AXIS_1-LOOP_1][X_AXIS_1+LOOP_1]=322;
}
else
{
AXIS[Y_AXIS_1-LOOP_1+1][X_AXIS_1+LOOP_1-1]=0;
AXIS[Y_AXIS_1-LOOP_1][X_AXIS_1+LOOP_1]=322;
break;
}
}
}
}
if(Y_AXIS_2-Y_AXIS_1 > 0)
{
if(X_AXIS_2-X_AXIS_1 < 0)
{
for(LOOP_1=1;LOOP_1 <= sqrt((X_AXIS_1-X_AXIS_2)*(Y_AXIS_2-Y_AXIS_1));LOOP_1++)
{
if(AXIS[Y_AXIS_1+LOOP_1][X_AXIS_1-LOOP_1] == 0)
{
AXIS[Y_AXIS_1+LOOP_1-1][X_AXIS_1-LOOP_1+1]=0;
AXIS[Y_AXIS_1+LOOP_1][X_AXIS_1-LOOP_1]=322;
}
else
{
AXIS[Y_AXIS_1+LOOP_1-1][X_AXIS_1-LOOP_1+1]=0;
AXIS[Y_AXIS_1+LOOP_1][X_AXIS_1-LOOP_1]=322;
break;
}
}
}
if(X_AXIS_2-X_AXIS_1 > 0)
{
for(LOOP_1=1;LOOP_1 <= sqrt((X_AXIS_2-X_AXIS_1)*(Y_AXIS_2-Y_AXIS_1));LOOP_1++)
{
if(AXIS[Y_AXIS_1+LOOP_1][X_AXIS_1+LOOP_1] == 0)
{
AXIS[Y_AXIS_1+LOOP_1-1][X_AXIS_1+LOOP_1-1]=0;
AXIS[Y_AXIS_1+LOOP_1][X_AXIS_1+LOOP_1]=322;
}
else
{
AXIS[Y_AXIS_1+LOOP_1-1][X_AXIS_1+LOOP_1-1]=0;
AXIS[Y_AXIS_1+LOOP_1][X_AXIS_1+LOOP_1]=322;
break;
}
}
}
}
}
void FUNCTION_K(void)
{
if(X_AXIS_2 == X_AXIS_1+1 && Y_AXIS_2 == Y_AXIS_1+1 || X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1+1 || X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1+1)
{
FUNCTION_SWHICH();
}
if(X_AXIS_2 == X_AXIS_1+1 && Y_AXIS_2 == Y_AXIS_1 || X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1 || X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1)
{
FUNCTION_SWHICH();
}
if(X_AXIS_2 == X_AXIS_1+1 && Y_AXIS_2 == Y_AXIS_1 || X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1 || X_AXIS_2 == X_AXIS_1 && Y_AXIS_2 == Y_AXIS_1)
{
FUNCTION_SWHICH();
}
}
int main(void)
{
for(LOOP_3=1;LOOP_3 == 1;LOOP_3+=0)
{
system("cls");
for(LOOP_1=0;LOOP_1 <= 7;LOOP_1++)
{
for(LOOP_2=0;LOOP_2 <= 7;LOOP_2++)
{
if(AXIS[LOOP_1][LOOP_2] > 300 && AXIS[LOOP_1][LOOP_2] < 400)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY |
FOREGROUND_RED |
FOREGROUND_GREEN |
FOREGROUND_BLUE);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY |
FOREGROUND_INTENSITY |
BACKGROUND_RED |
BACKGROUND_GREEN |
BACKGROUND_BLUE);
}
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY |
FOREGROUND_RED |
FOREGROUND_GREEN |
FOREGROUND_BLUE);
}
cout << (char)(AXIS[LOOP_1][LOOP_2]);
}
cout << endl;
}
cout << LOOP_4 << ":";
cin >> X_AXIS_1 >> Y_AXIS_1 >> X_AXIS_2 >> Y_AXIS_2;
X_AXIS_1-='a';
X_AXIS_2-='a';
Y_AXIS_1-=1;
Y_AXIS_2-=1;
if(X_AXIS_1 >= 0 && X_AXIS_1 <= 7 && Y_AXIS_1 >= 0 && Y_AXIS_1 <= 7)
{
if(X_AXIS_2 >= 0 && X_AXIS_2 <= 7 && Y_AXIS_2 >= 0 && Y_AXIS_2 <= 7)
{
if(AXIS[Y_AXIS_1][X_AXIS_1] == 336 || AXIS[Y_AXIS_1][X_AXIS_1] == 80)
{
if(LOOP_4 == 0)
{
FUNCTION_P_WHITE();
}
else if(LOOP_4 == 1)
{
FUNCTION_P_BLACK();
}
}
else if(AXIS[Y_AXIS_1][X_AXIS_1] == 338 || AXIS[Y_AXIS_1][X_AXIS_1] == 82)
{
FUNCTION_R();
}
else if(AXIS[Y_AXIS_1][X_AXIS_1] == 334 || AXIS[Y_AXIS_1][X_AXIS_1] == 78)
{
FUNCTION_N();
}
else if(AXIS[Y_AXIS_1][X_AXIS_1] == 322 || AXIS[Y_AXIS_1][X_AXIS_1] == 66)
{
FUNCTION_B();
}
else if(AXIS[Y_AXIS_1][X_AXIS_1] == 331 || AXIS[Y_AXIS_1][X_AXIS_1] == 75)
{
FUNCTION_K();
}
else if(AXIS[Y_AXIS_1][X_AXIS_1] == 337 || AXIS[Y_AXIS_1][X_AXIS_1] == 81)
{
FUNCTION_N();
FUNCTION_B();
}
}
}
if(LOOP_4 == 0)
{
LOOP_4=1;
}
else LOOP_4=0;
}
return 0;
}
“一个可以运行 的C++语言国际象棋程序,几年前编的答辩程序,莫得注释,我也忘了写的是嘛,王车易位没写,烂尾坟立个碑。”