Shannon propuso en [68] una de las primeras ideas de
representación del juego mediante números y
operaciones sobre ellos.
Según su propuesta, una casilla puede ser representada por un
número que puede tomar 13 valores distintos: puede estar vacía (0)
o bien ocupada por una de las seis piezas blancas (P=1, C=2, A=3,
T=4, D=5, R=6) o bien por una de las seis piezas negras (P=-1,
C=-2, A=-3, T=-4, D=-5, R=-6), vale decir, el estado de una
casilla queda especificado por un entero entre -6 y +6. Las 64
casillas del tablero pueden ser numeradas de acuerdo a un sistema
de coordenadas como el representado en la figura
.
Figura:
Representación del Juego en una máquina según Shannon
Un total de 256 bits (dígitos binarios) serían suficientes para
utilizar esta representación. Un número extra, al cual Shannon
denominó "λ" tendría los valores -1 ó +1 de acuerdo al turno
de jugar de las Negras o Blancas respectivamente. Algunos
parámetros extras deben ser agregados para efectos de movimientos
como el enroque y capturas al paso.
Bajo esta representación la posición inicial de las piezas queda
dada por la tabla
Tabla:
Esquema de la posición inicial de las piezas según la
representación de Shannon. Notar que el +1 al final señala el
turno de movimiento de las blancas.
Un movimiento (aparte del enroque y la coronación) puede
especificarse mediante los valores de las casillas de origen y
destino de la pieza que se mueve. Una casilla es un número entre
64 posibilidades, para cuya representación 6 dígitos binarios son
suficientes lo cual nos da un total de 12 para el movimiento.
Para representar coronaciones de
peón tres dígitos binarios son necesarios para especificar la
pieza que corona. El enroque puede ser descrito mediante el
movimiento del Rey (la única forma en que el rey puede moverse 2
casillas). Por lo tanto, una movida es representada por el vector
(a,b,c)donde a y b son las casillas y
c la pieza que llega al tablero en caso de coronación.
Con esto la representación del juego es entregada a 8 subrutinas
T0,T1,...,T7
cuyas funciones básicas son :
T0 : Realiza el movimiento (a,b,c) en la posición P
obteniendo una posición resultante.
T1 : Realiza una lista de todos los movimientos posibles de
peón en la posición P.
T2,..,T6 : Similar a T1 pero para las otras piezas : Caballo, Alfil, Torre, Dama y Rey.
T7 : Realiza una lista de todos los movimientos posibles en
una posición.
Con esto la realización de un movimiento (a,b,c) sería estructurado de
la siguiente manera :
La casilla correspondiente al número a es ubicada en
la posición de memoria.
El número presente en la casilla (x) es extraído y reemplazado por 0 (vacío).
Si x = 1 y la primera coordenada de a es 6
(peón blanco coronando) o si x = -1 y la primera coordenada
de a es 1 (peón negro coronando) el número c es
ubicado en la casilla b (reemplazando lo que allí había).
Si x = 6 y a - b = 2 (enroque corto del blanco) un 0 es
ubicado en la casilla 04 y 07 y un 6 y 4 en las casillas 06 y 05
respectivamente. Similarmente para los casos de x = 6, b - a = 2
(enroque largo del blanco) y x = -6, a - b = ±2 (enroque negro).
En cualquier otro caso, x es ubicado en b.
El signo de "λ" es cambiado.
Para cada tipo de pieza existe una subrutina encargada de generar
sus movimientos. Un ejemplo típico es el programa para los
movimientos del Alfil T3. Sean (x,y) las coordenadas de la
casilla ocupada por el Alfil.
Construir (x+1,y+1) y leer el contenido u de esta
casilla en la posición P.
Si u = 0 (casilla vacía) listar el
movimiento (x,y),(x+1,y+1) y seguir con (x+2,y+2) en vez de
(x+1,y+1).
Si λu es positivo (pieza propia en casilla)continuar con
3.
Si λu es negativo (pieza del oponente en la casilla)
listar el movimiento y continuar con 3. Si la casilla no existe continuar con 3
Construir (x+1,y-1) y realizar el mismo proceso.
Similarmente con (x-1,y+1).
Similarmente con (x-1,y-1).
Mediante este programa es posible construir una lista de
movimientos posibles de un Alfil dada una posición P. Programas
similares listarían los movimientos de las otras piezas. Hay
considerables opciones de simplificar estos programas. Por
ejemplo, el programa de movimientos de Dama T5 puede ser una
combinación de los programas de Alfil y Torre (T4 y T4
respectivamente).
Utilizando los programas generadores de movimientos T1..T6
y un programa controlador T7 la máquina puede construir una
lista de todos los movimientos posibles en una posición P.
El programa T7 se estructuraría de la siguiente forma:
Iniciar en la casilla (0,0) y extraer su contenido x.
Si λx es positivo iniciar el programa
correspondiente Tx y luego retornar a 1 sumando 1 al numero
de la casilla.
Testear la legalidad de los movimientos
generados y descartar aquellos que sean ilegales. Esto se logra
realizando cada uno de los movimientos en la posición P (mediante
T0) y examinando si el rey queda en jaque.
Con los programas T0..T7
la máquina puede jugar ajedrez
legal realizando una selección aleatoria de alguno de los
movimientos obtenidos. Shannon mismo jugó un par de juegos contra
una máquina con esta estrategia siendo capaz de vencer por jaque
mate en 4 o 5 jugadas lo cual demostraba lo deficiente de esta
estrategia..
Next:Representaciones en programas contemporáneos Up:Representación del Juego - Previous:Representación del Juego -
  Índice General
Santiago de Chile, Julio 2003