Programación de código fuente para jugar
# include & ltstring& gt
Usar espacio de nombres std
Clase CGobang //clase de pieza de ajedrez
{
Privado:
char chSort//Tipo de pieza de ajedrez
int nWin//Número de piezas ganadoras
int nLose // Número de pérdidas
Estático int nDraw//Número de empates
Placa de circuito de carga electrostática[3][3]; //Tablero de ajedrez
Estático int nSize / /El tamaño del tablero de ajedrez nSize
{
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 \ hierro! \ n \ n "
ndraw
} p >
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()//Tablero de salida
{
cout & lt& ltendl
cout & lt& lt" 1 2 3 " & lt;& ltendl
cout & lt& lt" 1 " & lt;& ltach tablero[ 0][0]& lt;& lt" | " & lt& ltach tablero[0][1]& lt;& lt" | " & lt& ltach tablero[0][2]& lt;& ltendl
cout & lt& lt"-|-|-" & lt;& ltendl
cout & lt& lt" 2 " & lt& ltach tablero[1][0]& lt;& lt" | " & lt& ltach tablero[1][1]& lt;& lt" | " & lt& ltach tablero[1][2]& lt;& ltendl
cout & lt& lt"-|-| -" & lt;& ltendl
cout & lt& lt" 3 " & lt& ltach tablero[2][0]& lt;& 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++)
if(achBoard[i][j]!=' ')
Devuelve 0
Devuelve 1
}
Void 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++;
p>}
void CGO bang::jugar turno(void)//Haz 1 movimiento.
{
int nRow, nCol
cout & lt& 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 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
Salir del bucle
}
} 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 que pueden conectarse en 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 & amp;& ampachBoard[0][2]==chSort)
Devuelve 1;
else if(ach board[0][0]= = ch sort &&ach board[1][0]= = ch sort&&achBoard[2][0]==chSort )
Devuelve 1;
else if(ach board[0][1]= = ch sort & amp;& ampach board[1][1]= = ch sort & amp;& ampachBoard[2][1 ]==chSort)
Devolver 1;
else if(ach board[0][2]= = ch sort &&ach tablero [1][2]= = ch sort & & ampachBoard[2][2]==chSort)
Devuelve 1;
else if(ach board[0][0 ]= = ch sort &&ach board[0][1]= = ch sort &&achBoard[0][2]==chSort)
Devolver 1;
else if (ach board[1][0]= = ch sort & &ach board[1][1]= = ch sort&&achBoard[1][2]==chSort)
Return 1;
else if(ach board[2][0]= = ch sort & amp;& ampach board[2][1]= = ch sort & amp;& 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"
}
Void PrintRule(void) //Imprimir reglas
{
cout & lt& lt" \ t \ t \¡Bienvenido al juego Julian de los Tres Hijos!"& lt& ltendl & lt& ltendl
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 presione Enter\ n ";
cout & lt& lt" \t2 Si hay 1 borde y las primeras tres piezas están conectadas en una línea, se determinará el ganador\ n ";
cout & lt& lt" \t3. Cuando el tablero está lleno de piezas de ajedrez pero aún no hay ganador, se produce un empate\ n ";
cout & lt& lt" \t4. x el grupo es el primero\ n ";
cout & lt& lt" \ n \ n \ t \¡Presiona cualquier tecla para comenzar a jugar!\ n \ n ";
}
int Judge Play(CGO bang & amp; Sidex, Gao Banghe. SideO)//1 gana o pierde en cada paso y devuelve 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 y SideO) //Iniciar el 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>
p>
}
int main(void)
{
CGobang SideX('X '), SideO(' O '); // Define dos objetos de clase de pieza de ajedrez, que representan el lado X y el lado O respectivamente.
imprimir regla();
CIN . get();
String strChoice
Hacer
{
CGO bang::initial board(); //Inicializa el tablero
Play(SideX, SideO); //Inicia el siguiente juego
cout & lt& lt"¿Quieres continuar (S/N)?";
CIN>& 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!" & lt& ltendl & lt& ltendl
Return
}