MÉTODO GENERAL PARA LA OBTENCIÓN DE N REINAS EN TABLEROS DE
AJEDREZ , EXPLICACIÓN GRÁFICA Y CÓDIGO JAVA QUE LO IMPLEMENTA.
Método general para obtener reinas en tableros cuadrados de
ajedrez de un número de casillas horizontales:
x=4+n, igual al número de reinas, las cuales cumplen la propiedad de no
amenazarse entre ellas según los movimientos de la reina en el juego de ajedrez,
computacionalmente no viable para un número grande de reinas en el tablero.
Para aplicar el método se empieza colocando una reina sobre
cualquier casilla vertical de x=1, a
continuación : colocar en las casillas verticales siguientes de x=2 todas las
reinas que no se amenacen con la anterior de x=1, repetir este procedimiento
con todas las reinas de x=2 sobre x=3 , a partir de la casilla x=3 eliminar del procedimiento las reinas
dispuestas en las casillas actuales de x que se amenazan con las de las
casillas anteriores, con las reinas que no han sido eliminadas repetir el proceso
hasta llegar si se puede a x=n.
El código java que adjunto emplea este método, pero en el
ejemplo gráfico que se muestra a continuación para que sea más comprensible las
reinas de las casillas verticales de x=2, x=3 …
en vez de operar con todas las reinas verticales de cada
x=3,4.. ,se opera solo con una de ellas a modo de
ejemplo.
En el código java que se adjunta para sacar todas las reinas
existentes de un tablero de tamaño n hay que hacer el procedimiento con cada una de las
casillas verticales de x=1.
Ej: en un tablero de 8*8: primero hago el proceso colocando
la primera reina en la casilla (x=1 y=8), después en (x=1 y=7), repitiendo el
proceso hasta (x=1 y=1) y saldrán los 92 tableros.
Paso 1 (x=1, y=6).
Se colocan todas las reinas en x=2 compatibles con la reina
de x=1.
Escojo una reina en x=2 para aplicar el método en x=3.
Coloco todas las reinas en x=3 compatibles con x=2.
Se
detectan la reinas en x=3 incompatibles con x=1.
Me quedo con las compatibles
Escojo una de las reinas compatibles y aplico el método en
x=4.
Escojo una.
Se repite el procedimiento.
En el ejemplo la elección de las reinas es programada para dar con solución correcta, en el siguiente ejemplo se muestra un procedimiento fallido:
(El ordenador en vez de quedarse con una reina en x=n se
queda con todas en cada x=n, cuando una reina ya no cumple Ej en x=6 todas las
reinas están amenazadas, se elimina del grupo.)
EJEMPLO FALLIDO
EN EL CÓDIGO .txt QUE SE ADJUNTA
Cambios a realizar:
Poner el número de reinas.
Poner la coordenada y de la primera reina.
Crear en C: // la carpeta “queen”.
En este caso es un tablero de 8*8, la primera reina se
coloca en y = 6.
Al ejecutar el código el resultado se escribe en el fichero gusano.txt (el
sistema lo crea solo).
Ej de salida en el fichero gusano.txt.
Los “+” indican series que no se han podido completar.
En este caso es un tablero de 9*9 con la primera reina en
y=6.
En la primera serie que se ve : 6,1,5,2,9,7,4,8,3; significa:
en (x=1,y=6),(x=2,y=1),(x=3,y=5)(x=4,y=2)....
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.