Código fuente del servicio de transferencia
# incluir lt string gt
Usar espacio de nombres std
Clase CGobang //Clase de pieza de ajedrez
{< / p>
Privado:
char chSort//Tipo de pieza de ajedrez
int nWin//Número de piezas ganadoras
int nLose//Piezas perdedoras Veces
Static int nDraw//Número de sorteos
Placa de circuito de carga electrostática[3][3]; //Tablero de ajedrez
Static int nSize//Tablero de ajedrez Tamaño nTamaño
{
chSort = chsort
nWin = nLose = nDraw = 0
}
nunca jugar; turn(void); //Toma 1 para moverte.
int Judge(); //Juzga si están conectados en una línea. Si es así, devuelve 1; de lo contrario, devuelve 0.
void Win(void); //Gana el ajedrez
void Lose(void); //Pierde el ajedrez
Pintura vacía estática (void); // Draw
void PrintInfo(void); // Genera la situación general
Tablero de impresión vacío estático (void) // Genera el tablero de ajedrez
static); int get full( void); // Determina si el tablero de ajedrez está lleno de piezas de ajedrez.
Tablero inicial vacío estático(void); //Inicializa el tablero
};
char CGO bang::ach board[3][3];
int CGO bang::nSize = 3;
int CGO bang::nDraw = 0;
void CGobang::Draw()
{
cout lt lt"\n\n\t\iron!\n\n";
ndraw;
}
voidccgobang::initial board()//Inicializa el tablero de ajedrez.
{
for(int I = 0; i ltnSizei)
for(int j = 0; j ltnSizej)
cada tablero[I][j]="";
}
voidccgobang::print board()//Salida del tablero de ajedrez
{
cout lt ltendl
cout lt lt" 1 2 3 " lt; ltendl
cout lt" 1 " ltach board[0][0] lt" | " lt lttach tablero[0][1] lt; lt" | " lt lttach tablero[0][2] lt; ltendl
cout lt lt"-|-|-" lt; ltendl
cout lt lt" 2 " lt placa de conexión[1][0] lt; lt" | " lt placa de conexión[1][1] lt" | " lt placa de conexión[1][2] ] lt; ltendl
cout lt lt"-|-|-" lt; ltendl
cout lt" 3 " lt ltach board[2][0] lt" " lt ltach tablero[2][1] lt; lt" | " lt ltach tablero[2][2] lt; ltendl
cout lt ltendl
cout lt ltendl
}
Int CGobang::GetFull() //Determina si el tablero de ajedrez está lleno de piezas de ajedrez. Si es así, devuelve 1.
{
for(int I = 0; i ltnSizei)
for(int j = 0; j ltnSizej)
si (achBoard[i][j]!=' ')
Devuelve 0
Devuelve 1
}
Nulo CGobang; ::Win() //Gana el juego.
{
cout lt lt" \ n \ n \ t \ t " lt ltchSort lt lt"¡La fiesta ganó! \ n \ n "
nwin;
}
Void CGobang::Lose() //Perdiendo
{
nlose;
}
void CGO bang::jugar turno(void)//Haz 1 movimiento.
{
int nRow, nCol
cout lt "Ahora es el momento"
Hacer
{
CIN gt; gtnRow gt gtnCol//Ingresar coordenadas
if(nRow gt; nSize | | nCol gtNSize) //Juzga que las coordenadas están fuera de los límites.
cout lt ltLas coordenadas de entrada están fuera de los límites, el rango de xey debe ser menor o igual que
else if(ach board[nRow-1][nCol- 1]!= ' ') //Juzga si las coordenadas son razonables
cout lt lt"Chessboard("
Otros
{
ach board[nRow-1] [nCol-1]= ch sort; //Coloca la pieza en las coordenadas
Break; //Salir del bucle
} p>
} while(1 );
}
Int CGobang::Judge() //Determina si las piezas están conectadas en una línea, si es así, devuelve 1
{// Las siguientes son varias situaciones en las que se puede formar una línea
if(ach board[0][0]= = ch sort amp; ampach board[1]. ][1]= = ch sort amp; ampachBoard [2][2]==chSort)
Devuelve 1;
else if(ach board[2][0] = = ch sort amp; ampach board[1][ 1]= = ch sort ampachBoard[0][2]==chSort)
Devuelve 1;
si no (ach board[0][0]= = ch sort amp; ampach board[1][0]= = ch sort amp; ampachBoard[2][0]==chSort)
Return 1;
else if(ach board [0][1]= = ch sort amp; ampach board[1][1]= = ch sort amp; ampachBoard[2][1]==chSort)
Devuelve 1;
else if(ach board[0][2]= = ch sort amp; ampach board[1][2]= = ch sort amp; ampachBoard[2 ][2]==chSort)
Devuelve 1;
else if(ach board[0][0]= = ch sort amp; ampach board[0][1] = = ch sort amp; ampachBoard[0][2 ]==chSort)
Devuelve 1;
else if(ach board[1][0]= = ch sort amp; ; ampach board[1][1]= = ch sort ampachBoard[1][2]==chSort)
Devuelve 1;
else if(ach board[2] ][0]= = ch sort amp; ampach board [2][1]= = ch sort ampachBoard[2][2]==chSort)
Devuelve 1;
Otros
Devuelve 0; //Si no está conectado en una línea, devuelve 0.
}
Void CGobang::PrintInfo(void) //Imprime la situación general.
{
cout lt lt" Side " lt ltchSort lt lt"Side* * *tiene la intención de ganar"
}
Nulo PrintRule (void) //Imprimir reglas
{
cout lt lt" \ t \ t \¡Bienvenido al Juego de los Tres Hijos Julian!" p>cout lt lt" \Reglas del juego: "
cout lt lt" \t1. Ingresa las coordenadas x e y del cuadrado en cada paso para jugar al ajedrez y presiona Enter\ n "; p>
cout lt lt" \t2. Si hay 1 lado y las primeras tres piezas están conectadas en línea, se determinará el ganador\n ";
cout lt lt" \t3 . Cuando el tablero está lleno Cuando aún no hay ganador, se produce un empate\n ";
cout lt lt" \t4 El grupo x es el primero\n ";
. cout lt lt" \n \ n \ t \ ¡Presione cualquier tecla para comenzar a jugar al ajedrez! \ n \ n "
}
int juez play(CGO bang amp; Sidex , Gao Banghe SideO )//1 Gane o pierda en cada paso, devuelva 1 si hay un resultado.
{
Si (SideX.Judge()) //X gana.
{
SideX. win();
LadoO. perder();
Devuelve 1;
}
De lo contrario, if(SideO.Judge()) //O gana.
{
LadoO. ganar();
SideX. perder();
Devuelve 1;
}
Otros
Devuelve 0;
} p>
Juego no válido (CGobang amp Sidex, Gobang y SideO) //Iniciar juego
{
while(1)
{
CGO bang::print board(); //Tablero de salida
SideX. play turn(); //El lado X juega al ajedrez
If(JudgePlay(SideX, SideO)) //Juzga si ganas o pierdes.
Break;
If(CGobang::GetFull()) //Determina si es un empate.
{
Explosión CGO::Dibujar();
Romper;
}
Explosión CGO: :print board(); //Salida del tablero de ajedrez
SideO. jugar turno(); //O jugar al ajedrez.
If(JudgePlay(SideX, SideO)) //Juzga si ganas o pierdes.
Break;
If(CGobang::GetFull()) //Determina si es un empate.
{
CGO bang::Dibujar();
Romper;
}
} p>
}
int main(void)
{
CGobang SideX('X '), SideO(' O '); Defina dos objetos de clase de pieza de ajedrez, que representen el lado X y el lado O respectivamente.
imprimir regla();
CIN . get();
String strChoice
Hacer
{
CGO bang:: tablero inicial(); //Inicializa el tablero
Play(SideX, SideO); //Inicia el siguiente juego
cout lt lt"¿Quieres continuar (Sí/No)?";
CIN gt; gtstrChoice
} while(str elección == " Y " | | str elección == " Y ");
SideX. PrintInfo();
LadoO. PrintInfo();
cout lt lt" \ n \ n \¡Bienvenido al juego Three Sons Julian otra vez!" >}