marinamallol programación no-numérica ii- n-reinas
TRANSCRIPT
Instituto Universitario Politécnico ‘’Santiago Mariño’’.Extensión Porlamar.
Programación No-Numérica II.
Autor: Br. Marina Mallol.
El problema de las N reinas consiste en:
situar N reinas en
un tablero de
ajedrez de NxN
sin que se amenacen entre ellas.
Para representar el problema, se podría plantear como una matriz de 8x8 enteros, donde R significa que la reina está en esa posición, y un 0 que la casilla está vacía.
0 0 0 R 0 0 0 0
0 0 0 0 0 0 R 0
0 0 R 0 0 0 0 0
0 0 0 0 0 0 0 R
0 R 0 0 0 0 0 0
0 0 0 0 R 0 0 0
R 0 0 0 0 0 0 0
0 0 0 0 0 R 0 0
Luego se procede a evaluar la posición de cana reina
Y evaluar si está en la misma fila, columna o diagonal. Y si cada reina no esta siendo atacada por ninguna otra
Una reina amenaza a otra si está en la misma fila, columna o diagonal.
-1 -1 -1 R -1 -1 -1 -1
0 0 -1 -1 -1 0 0 0
0 -1 0 -1 0 -1 0 0
-1 0 0 -1 0 0 -1 0
0 0 0 -1 0 0 0 -1
0 0 0 -1 0 0 0 0
0 0 0 -1 0 0 0 0
0 0 0 -1 0 0 0 0
Y luego se le resta (1) a cada una de las casillas que pueda atacar la Reina (R)
R Es la ubicación de la reina
1ra Reina (R)
-1 -1 -1 R -1 -1 -2 -2
-1 -1 -2 -2 -2 -1 R 0
0 -1 0 -1 0 -2 -1 0
-1 0 0 -1 -1 0 -2 0
0 0 0 -2 0 0 -1 -1
0 0 -1 -1 0 0 -1 0
0 -1 0 -1 0 0 -1 0
-1 0 0 -1 0 0 -1 0
-2 -1 -2 R -1 -1 -2 -2
-1 -2 -3 -2 -2 -1 R 0
-1 -2 R -2 -1 -3 -2 -1
-1 0 -1 -2 -1 0 -2 0
0 0 -1 -2 -1 0 -1 -1
0 0 -2 -1 0 -1 -1 0
0 -1 -1 -1 0 0 -1 0
-1 0 -1 -1 0 0 -1 -1
2ra Reina (R)
3ra Reina (R)
4ta Reina (R)
5ta Reina (R)
-2 -1 -2 R -2 -1 -2 -3
-1 -2 -3 -2 -2 -2 R -1
-1 -2 R -2 -1 -3 -3 -2
-2 -1 -2 -3 -2 -1 -3 R
0 0 -1 -2 -1 0 -2 -2
0 0 -2 -1 0 -2 -1 -1
0 -1 -1 -1 -1 0 -1 -1
-1 0 -1 -2 0 0 -1 -2
-2 -2 -2 R -2 -2 -2 -3
-1 -3 -3 -2 -3 -2 R -1
-1 -3 R -3 -1 -3 -3 -2
-3 -2 -3 -3 -2 -1 -3 R
-1 R -2 -3 -2 -1 -3 -3
-1 0 -3 -1 0 -2 -1 -1
0 -1 -1 -4 -1 0 -1 -1
-1 0 -1 -2 -1 0 -1 -2
6ta Reina (R)
7ma Reina (R)
-3 -2 -2 R -3 -2 -2 -3
-2 -3 -3 -2 -4 -2 R -1
-1 -4 R -3 -2 -3 -3 -2
-3 -2 -4 -3 -3 -1 -3 R
-1 R -2 -4 -3 -1 -3 -3
-2 -1 -4 -2 R -2 -1 -1
0 -1 -1 -5 -1 -1 -1 -1
-1 0 -2 -2 -2 0 -2 -2
-4 -2 -2 R -3 -2 -3 -3
-3 -3 -3 -2 -4 -3 R -1
-2 -4 R -3 -3 -3 -3 -2
-4 -2 -4 -4 -3 -1 -3 R
-2 R -3 -4 -3 -1 -3 -3
-3 -2 -4 -2 R -2 -1 -1
R -2 -2 -6 -2 -2 -2 -2
-2 -1 -2 -2 -2 0 -2 -2
Ultima Reina (R)
-4 -2 -2 R -3 -2 -3 -3
-3 -3 -3 -2 -4 -3 R -1
-2 -4 R -3 -3 -3 -3 -2
-4 -3 -4 -4 -3 -1 -3 R
-2 R -4 -4 -3 -1 -3 -3
-3 -2 -4 -3 R -2 -1 -2
R -2 -2 -6 -3 -2 -3 -2
-3 -2 -3 -3 -3 R -3 -3
Al igual que en los tableros de las reinas anterior se le resta (1) a cada una de las casillas que pueda atacar la Reina donde cada posición corresponde a una columna del tablero, y el entero representa la fila en la que se encuentra la reina dentro de dicha columna.
La solución seria: 3 – 2 – 7- 7 – 9 – 13 – 6 - 2