Programación fuente sencilla
# 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: "; p>
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: "; p>
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]) p>
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