Red de conocimiento informático - Conocimiento sistemático - Programación fuente sencilla

Programación fuente sencilla

# incluir ltiostream gt

# incluir ltiomanip gt

¿Usar? ¿Espacio de nombres? estándar

const? int? ¿incógnita? =?21;? //Número de filas del tablero de ajedrez

const? int? ¿y? =?21;? //Número de columnas del tablero

Ciel? p[X][Y]; //Definir el tablero de ajedrez

int? m = 0; //Definir un punto temporal y guardar las coordenadas de entrada.

int? n = 0;

¿No válido? Display()//Salida del tablero de ajedrez

{

for(int?I = 0;?I ltx;?i)

cout lt ltsetw(3) lt; ltsetfill('?') lt lti;

cout lt ltendl

for(int?I = 1;?i lty;?i)

{

cout lt ltsetw(3) lt; ltsetfill('?') lt lti;

for(int?j = 1;j ltx;j)

cout lt ltsetw(3) lt; ltsetfill('?') lt ltp[I][j];

cout lt ltendl

}

}

¿No es válido? Negro()//Movimientos negros.

{

cout lt lt"Ingrese la posición de ubicación del negro:\n "

lt lt"Ingrese el número de líneas: ";

CIN gt; gtm;

cout lt ltIngrese el número de columnas: ";

CIN gt; gtn;

Si (m lt= 0 | | metro gt= \ n ";

Negro();

}

¿Y si? if((p[m][n]= = 1)| | p [m][n]= = 2)

{

cout lt lt"Aquí hay piezas de ajedrez, ¡vuelve a seleccionar el punto en movimiento! \n ";

Negro();

}

Otro

p[m][n]= 1;?/ /El borde negro está representado por 1.

System("cls");

Display()

}

No válido; ? ()//El lado rojo se mueve.

{

cout lt lt"Ingrese la posición en rojo:\n "

lt lt"Ingrese el número de líneas: ";

CIN gt; gtm;

cout lt ltIngrese el número de columnas: ";

CIN gt; gtn;

Si (m gt= X | | m lt= 0 | | n lt= 0 | n gt=Y)

{

cout lt"Fuera del rango del tablero de ajedrez ¡Ingrese las coordenadas correctas! \ n ";

Rojo();

}

¿Y si? if((p[m][n]= = 1)| | p [m][n]= = 2)

{

cout lt lt"Aquí hay piezas de ajedrez, ¡vuelve a seleccionar el punto en movimiento! \n ";

Rojo();

}

Otros

p[m][n]= 2;?/ /El cuadrado rojo está representado por 2.

System("cls");

Display()

}

int; evaluar? ()//Solo necesitas determinar si los nueve puntos "m" centrados en el punto de aterrizaje son continuos

int?0, r =?0; p>/*Juicio diagonal*/

for(k = 3;k ltx-2;K)//Dos, donde p[k][r] = '-' es el caso donde la vulnerabilidad se elimina

{

for(r = 3; r lty-2; r )

{

if(p[k ][r]!= '-' amp; ampp[k-2][r-2]= p[k][r] ampp[k-1][r-1] = p[k][r] ] amp; ampp[k 1][r 1]= p[k][r] amp; ampp[k 2][r 2]==p[k][r])

Volver a 1;

¿Qué pasa si (p[k][r]!= '-' amp; ampp[k 2][r-2]= p[k] [r] amp; ampp[k 1 ][r-1]= p[k][r] ampp[k-1][r 1]= p[k][r] ampp[k-2 ][r 2]==p[ k][r])

Volver a 1;

}

}

/ *Juicio de línea horizontal*/

for(k = 1;k ltx;k)//p[k][r]! ='-' es el caso de eliminar lagunas

for(r = 3; r. lty-2; r )

if(p[k][r]!= '-' amp; ampp[k][r-2]= = p[k ][r] amp; ampp [k][r-1]= = p[k][r] ampp[k][r 1]= = p[k][r] ampp[k][ r 2]==p[ k][r])

Regresión 1;

/*Juicio de línea vertical*/

for(k = 3 ;k ltx-2;k ) //p[k][r]! ='-' es el caso en el que se elimina la vulnerabilidad.

for(r = 1; r lty; r )

if(p[k][r]!= '-' amp; ampp[k-2][r] = = p[k][r] amp; ampp[k-1][r]= = p[k][r] ampp[k 1][r]= = p[k][r] amp; ampp[k 2][r]==p[k][r])

¿Regresar? 1;

¿Volver? 0;

}

int? main()

{

memset(p,'-',441); //Inicializado en "-"

cout lt lt"Bienvenido a A juego de backgammon simple para dos jugadores\n "

lt lt"Los puntos del backgammon son los siguientes:\n";

Display();

mientras (1)

{

Rojo();

if(evalue())

{

cout lt lt "¡El rojo gana!\n";

Romper;

}

Negro();

if(evalue( ))

{

cout lt "¡Las negras ganan! \n "

Romper

}

< p; >}

¿Volver? 0;

Todos juegan al backgammon