Red de conocimiento informático - Conocimiento sistemático - Programación de código fuente para jugar

Programación de código fuente para jugar

# include & ltiostream & gt

# 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

}

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;

}

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>

}

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

}