SCREEN 12 'Pantalla grafica
DEFINT A-Y 'Variables enteras
DIM n(64, 7, 7) 'Casilla de origen,direccion y alcance
DIM Ix(15), Iy(15) 'Incremento segun direccion
DIM o(7, 7), h(7, 64, 7) 'Direccion para pieza y alcance
DIM a(32), t(32), c(32) 'Tipo, bando y casilla de pieza (0vacia,1PB,2PN,3C,4A,5T,6D,7R)
DIM p(64), p1(2), p2(2) 'Pieza en casilla, inicio y fin
DIM s(200, 2) 'Jugadas posibles
DIM x(64), y(64) 'Coordenadas para casillas
DIM r(2), pr(2), k(64), Q(64) 'Casilla y pieza del rey ,control de enroque y promocion
DIM I(2, 2), f(64) 'Tinta, fondo
DIM JJ(200, 9), J(9, 9) 'Control de jugadas
DIM L(16), LL(16) ' Control contadores
DIM m(200), e(7, 64) 'Control ordenacion y destino repetido
DIM u(7, 7), d(7) 'Comprueba jaques y direccion ataque de peon
DIM b$(7), J$(200, 2) 'Inicial y totales
DIM e$(200), c$(64), x$(64), y$(64) 'Repetidos y casillas
DIM v$(30), w$(4) 'Tabla
DIM aa(9), dd(9), g(9), gg(9), hh(9), JQ(9) 'Rutina principal
DIM c0(9), c1(9), c2(9), c3(9), c4(9), d1(9), d2(9), d3(9)
DIM pc1(9), pc2(9), pc3(9), pc4(9)
READ v$(0), v$(1), v$(2) 'Tabla
READ w$(0), w$(1), w$(2), w$(3), w$(4)
I(1, 1) = 15 'Tinta blancas
I(1, 2) = 0 'Perfil
I(2, 1) = 0
I(2, 2) = 15
d(1) = 2 'Peon al frente
d(5) = 1
FOR v = 2 TO 198 'Totales
J$(v, 1) = RIGHT$(" " + STR$(v - 1), 4) + " "
J$(v, 2) = J$(v, 1)
NEXT
FOR v = 0 TO 1
FOR w = 1 TO 2
READ J$(v, w) 'Resultado
J$(200 - v, 3 - w) = J$(v, w)
NEXT w, v
FOR d = 0 TO 15 'Direcciones posibles,del 8 al 15 para el caballo
READ Ix(d), Iy(d) 'Incremento segun direccion
L(d + 1) = 1 OR L(d) = 1 'Maximos y minimos
LL(d + 1) = 400 AND L(d) = 1
NEXT
FOR a = 1 TO 7 'Tipo de pieza
READ b$(a), gg(a), d1(a), d2(a), d3(a) 'Inicial, alcance y direcciones
FOR d = d1(a) TO d2(a) STEP d3(a)
o(a, d) = 1
IF a < 3 AND d(d) = 0 THEN u(a + L(a), d) = 2 'Alcance +1
IF a > 3 THEN u(a, d) = 8: u(7, d) = 2
NEXT d, a
FOR t = 1 TO 2 'Bando
r(t) = 56 * t - 51 'Casilla rey de inicio
pr(t) = 17 * t - 5 'Pieza del rey
p1(t) = 16 * t - 15 'Blancas de 1 a 16
p2(t) = 16 * t 'Negras de 17 a 32
FOR p = p1(t) TO p2(t) 'Pieza
READ a
a(p) = a 'Tipo de pieza
t(p) = t 'Bando
c(p) = 2 + 15 * t - L(t) * p 'Casilla para pieza
p(c(p)) = p 'Pieza para casilla
IF a < 3 THEN Q(c(p)) = a + L(a) 'Casillas origen de promocion
NEXT p, t
FOR c = 1 TO 64 'Casillas del tablero
y = (c - 1) \ 8 'Fila
x = c - 8 * y 'Columna
y(c) = 60 * (7 - y)
x(c) = 60 * x - 60
x$(c) = CHR$(x + 96)
y$(c) = CHR$(y + 49)
c$(c) = x$(c) + y$(c) 'Casilla
f = 1 - 2 * (f = 1) 'Alterna fondo
f(c) = f 'Fondo de casilla
GOSUB DibujarNormal 'Plasmar en pantalla
IF x = 8 THEN f = f(c - 1) 'Primera columna, repite fondo
FOR d = 0 TO 15 'Total de direcciones
h = 0 'Alcance
xx = x 'Copia coordenadas
yy = y
Incremento:
xx = xx + Ix(d)
yy = yy + Iy(d)
IF xx > 0 AND xx < 9 AND yy > -1 AND yy < 8 THEN 'No supera los limites del tablero
IF d > 7 THEN
n(c, d - 8, 0) = xx + 8 * yy 'Destino del caballo
h(3, c, d - 8) = -1
ELSE h = h + 1
n(c, d, h) = xx + 8 * yy 'Casilla destino
GOTO Incremento
END IF
END IF
FOR a = 1 TO 7 * SGN(h)
IF o(a, d) THEN 'Ajusta alcance segun direccion y pieza
IF a > 3 THEN h(a, c, d) = h 'Limite
IF a < 3 THEN h(a, c, d) = 1 - (a(p(c)) = a AND (d = 1 OR d = 5))
IF a = 7 THEN h(a, c, d) = 1 - (a(p(c)) = a AND (d = 3 OR d = 7))
END IF 'Peon al frente inicial y enroque =2
NEXT a, d, c
t = 1 'Turno blancas
tt = 2 'Rival negras
m = 2 'Profundidad de calculo
Inicio: 'Rutina principal
zt = TIMER
JQ = 0
J = 0
FOR v = 0 TO m - 1 'Reinicio de contadores
FOR w = 1 TO m - v
J(w, v + w) = LL(w)
NEXT w, v
n = 1
Pieza:
pc1(n) = p1(t) 'Primera pieza
Origen:
c1(n) = c(pc1(n)) 'Casilla de la pieza
IF c1(n) THEN 'Pieza activa
k(c1(n)) = k(c1(n)) + 1 'Simulacion de origen
p(c1(n)) = 0
aa(n) = a(pc1(n)) 'Tipo de pieza
dd(n) = d1(aa(n)) 'Direccion inicial
Alcance:
hh(n) = h(aa(n), c1(n), dd(n)) 'Alcance total
IF hh(n) THEN 'Hay alcance
g(n) = gg(aa(n)) 'Alcance inicial (0 para el caballo)
Destino:
c2(n) = n(c1(n), dd(n), g(n)) 'Casilla destino
pc2(n) = p(c2(n)) 'Pieza en destino
IF t(pc2(n)) = t GOTO DireccionSiguiente 'Mismo bando
IF aa(n) < 3 THEN 'Rutina peon
IF d(dd(n)) = t(pc2(n)) THEN 'Evaluar captura al paso
IF pc2(n) OR aa(n - 1) > 2 OR g(n - 1) < 2 GOTO DireccionSiguiente
IF c2(n) + c2(n) <> c1(n - 1) + c2(n - 1) GOTO DireccionSiguiente
c3(n) = 2 'Control
c4(n) = c2(n - 1) 'Casilla del peon a capturar
END IF
END IF
IF a(pc2(n)) = 7 THEN
JQ = 1 'Rey rival amenazado
k(c1(n)) = k(c1(n)) - 1 'Restaura origen
c(pc1(n)) = c1(n)
p(c1(n)) = pc1(n)
GOTO NivelAtras
END IF
IF aa(n) = Q(c1(n)) THEN a(pc1(n)) = 6: c0(n) = 6 'Promocion
IF aa(n) = 7 AND g(n) = 2 THEN 'Rutina enroque
IF k(r(t)) > 1 OR pc2(n) + JQ(n) GOTO DireccionSiguiente 'Rey movido, destino ocupado, intermedia amenazada
c = r(t) 'Casilla del rey en origen
d = 0 'Direcciones para busqueda de jaques
Enroque1:
p = p(n(c, d, 0))
IF t(p) = tt AND a(p) = 3 GOTO DireccionSiguiente 'Jaque con caballo
g = 1
h = h(6, c, d) + 1
Enroque2:
IF g < h THEN
p = p(n(c, d, g))
IF p = 0 THEN g = g + 1: GOTO Enroque2
IF t(p) = tt AND g < u(a(p), d) GOTO DireccionSiguiente 'Jaque
END IF
IF d < 7 THEN d = d + 1: GOTO Enroque1
IF dd(n) = 3 AND k(r(t) + 3) = 0 THEN c3(n) = r(t) + 3 'Enroque corto
IF dd(n) = 7 AND k(r(t) - 4) = 0 AND p(r(t) - 3) = 0 THEN c3(n) = r(t) - 4
IF c3(n) = 0 GOTO DireccionSiguiente
c4(n) = (c1(n) + c2(n)) \ 2 'Destino torre
END IF
Simulacion: 'Simulacion de destino
k(c2(n)) = k(c2(n)) + 1
c(pc1(n)) = c2(n)
c(pc2(n)) = 0
p(c2(n)) = pc1(n)
IF c3(n) THEN
IF c3(n) = 2 THEN 'Al paso
pc4(n) = p(c4(n))
c(pc4(n)) = 0
p(c4(n)) = 0
ELSE pc3(n) = p(c3(n)) 'Torre de enroque
c(pc3(n)) = c4(n)
p(c3(n)) = 0
p(c4(n)) = pc3(n)
END IF
END IF
IF n < m THEN n = n + 1: SWAP t, tt: GOTO Pieza 'Nivel siguiente
c = c(pr(t)) 'Casilla del rey
FOR d = 0 TO 7 'Direcciones para busqueda de jaques
p = p(n(c, d, 0))
IF t(p) = tt AND a(p) = 3 THEN JQ = 1: EXIT FOR 'Jaque con caballo
FOR g = 1 TO h(6, c, d)
p = p(n(c, d, g))
IF p THEN
IF t(p) = tt AND g < u(a(p), d) THEN JQ = 1: d = 7 'Jaque
EXIT FOR
END IF
NEXT g, d
Restaurar: 'Restaura destino simulado
k(c2(n)) = k(c2(n)) - 1
c(pc2(n)) = c2(n)
p(c2(n)) = pc2(n)
IF c3(n) THEN
IF c3(n) = 2 THEN 'Al paso
c(pc4(n)) = c4(n)
p(c4(n)) = pc4(n)
ELSE c(pc3(n)) = c3(n) 'Enroque
p(c3(n)) = pc3(n)
p(c4(n)) = 0
END IF
c3(n) = 0
END IF
JQ(n) = JQ 'Guarda jaque
IF JQ = 0 THEN
J(1, n) = J(1, n) + 2 'Jugadas posibles
IF n = 1 THEN
J = J + 1 'Guardar jugada
m(J) = m - 1
FOR v = 1 TO m(J)
IF J(v, v + 1) > 1 THEN 'Guarda valor mayor
JJ(J, v) = J(v, v + 1) \ 2 + 1
ELSE JJ(J, v) = J(v, v + 1) 'Mate o ahogado
JJ(J, v + 1) = 200 - JJ(J, v)
m(J) = v + (m - v + 1) MOD 2
EXIT FOR
END IF
NEXT
s(J, 0) = c0(1)
s(J, 1) = c1(1)
s(J, 2) = c2(1)
ELSE FOR v = 1 TO m - n 'Evaluar contadores
IF L(v) = SGN(J(v + 1, n + v) - J(v, n + v)) THEN J(v + 1, n + v) = J(v, n + v)
NEXT
END IF
ELSE JQ = 0
END IF
FOR v = n TO m - 1 'Reinicio de contadores
FOR w = 1 TO m - v
J(w, v + w) = LL(w)
NEXT w, v
IF c0(n) THEN 'Subpromocion
c0(n) = c0(n) - 1
IF c0(n) > 2 AND JQ(n) = 0 THEN a(pc1(n)) = c0(n): GOTO Simulacion
a(pc1(n)) = t
c0(n) = 0
END IF
'Casilla siguiente
IF pc2(n) = 0 AND g(n) < hh(n) THEN g(n) = g(n) + 1: GOTO Destino
END IF
DireccionSiguiente:
IF dd(n) < d2(aa(n)) THEN dd(n) = dd(n) + d3(aa(n)): GOTO Alcance
k(c1(n)) = k(c1(n)) - 1 'Restaura origen
c(pc1(n)) = c1(n)
p(c1(n)) = pc1(n)
END IF
'Pieza siguiente
IF pc1(n) < p2(t) THEN pc1(n) = pc1(n) + 1: GOTO Origen
IF J(1, n) = 0 THEN 'Mate o ahogado
J(1, n) = 1 'Ahogado
c = c(pr(t)) 'Casilla del rey
FOR d = 0 TO 7 'Direcciones para busqueda de jaques
p = p(n(c, d, 0))
IF t(p) = tt AND a(p) = 3 THEN J(1, n) = 0: EXIT FOR 'Mate con caballo
FOR g = 1 TO h(6, c, d)
p = p(n(c, d, g))
IF p THEN
IF t(p) = tt AND g < u(a(p), d) THEN J(1, n) = 0: d = 7 'Mate
EXIT FOR
END IF
NEXT g, d
END IF
NivelAtras:
n = n - 1
IF n THEN SWAP t, tt: GOTO Restaurar
FOR v = 1 TO J 'Destino repetido
c = s(v, 1)
e$(v) = ""
e = e(a(p(c)), s(v, 2))
IF e AND a(p(c)) > 2 THEN 'Repite destino pieza del mismo tipo
e$(v) = x$(c) 'Letra columna
e$(e) = x$(s(e, 1))
IF e$(v) = e$(e) THEN e$(v) = y$(c): e$(e) = y$(s(e, 1))
ELSE e(a(p(c)), s(v, 2)) = v
END IF
NEXT
ERASE e
z = TIMER - zt + .1
c1 = r(t) 'Casilla del rey en origen
v1 = -1
IF J THEN
JJ(0, 0) = LL(m) - 1
x = 1 + (t + m) MOD 2
FOR v = 1 TO 7 'Ordenar maximos o minimos
s = 0
FOR w = 1 TO J
L = SGN(JJ(w, ABS(m(w))) - JJ(s, m(s)))
IF m(w) > 0 AND (L = L(m) OR L = 0 AND m(w) < m(s)) THEN s = w
NEXT
m(s) = -m(s)
IF s THEN 'Mejor eleccion en pantalla
GOSUB Movimiento
v1 = v
v$ = w$(1)
MID$(v$, 12 * x - 10) = J$(JJ(s, -m(s)), x) 'Totales
MID$(v$, 8) = b$ 'Jugada
v$(2 * v + 1) = v$
v$(2 * v + 2) = w$(2)
END IF
NEXT
J$ = J$(J + 1, t) 'Total de jugadas
ELSE m = 1
J$ = J$(J(1, 1), t)
END IF
IF v1 > 0 THEN
MID$(w$(0), 8) = CHR$(48 + m)
MID$(w$(0), 12) = RIGHT$(" " + LEFT$(STR$(z), 5) + CHR$(34), 6)
v$(2 * v1 + 2) = w$(3)
v$(2 * v1 + 3) = w$(0)
v$(2 * v1 + 4) = v$(2)
END IF
v1 = v1 + 2
v2 = v1 + (t + m) \ 2
FOR v = 2 * v1 TO 2 * v2 - 2 STEP 2
v$(v + 1) = w$(1)
v$(v + 2) = w$(2)
NEXT
v$(v) = w$(4)
MID$(v$(2 * v1 + 1), 12 * t - 10) = J$
PlasmarTabla:
FOR v = 0 TO 28
LOCATE v + 1, 62
IF v < 2 * v2 + 1 THEN PRINT v$(v); ELSE PRINT SPACE$(19);
NEXT
c = c1 'Origen
a = a(p(c)) 'Pieza
I = t(p(c)) 'Tinta
f = 6 + t 'Fondo
GOSUB Dibujar 'Plasmar cursor
GOSUB Teclado 'Lectura de teclado
IF a$ = CHR$(13) THEN
PiezaElegida:
s = J + 1 AND a$ = "K" 'Numero de movimiento
c = 0 'Casilla destino
MismaPieza:
s = s + (1 OR a$ = "K") 'Movimiento siguiente
IF s < 1 OR s > J THEN 'Fuera de rango
IF c GOTO PiezaElegida
GOTO PlasmarTabla
END IF
IF s(s, 1) <> c1 GOTO MismaPieza
GOSUB Movimiento
y = 2 * v1 + 2
LOCATE y, 69
PRINT b$
x = t
FOR v = 1 TO m 'Plasmar maximos
x = x + 1
IF x = 3 THEN x = 1: y = y + 2
J$ = J$(JJ(s, v), x)
IF v > ABS(m(s)) OR JJ(s, v) > 198 THEN J$ = " "
LOCATE y, 51 + 12 * x
PRINT J$;
NEXT
c = c2
a = a(p(c1))
IF s(s, 0) THEN a = s(s, 0)
I = t
f = 9 - t
GOSUB Dibujar 'Pieza elegida en destino
GOSUB Teclado 'Cualquier tecla
GOSUB DibujarNormal 'Normaliza destino
IF a$ <> CHR$(13) GOTO MismaPieza 'INTRO confirma jugada
aa(0) = a(p(c1))
g(0) = 0 'Control al paso
IF aa(0) < 3 THEN
IF s(s, 0) THEN a(p(c1)) = s(s, 0) 'Promocion
g(0) = ABS(c1 - c2) \ 8 'Al paso posible
IF (c1 - c2) MOD 8 AND p(c2) = 0 THEN c = c2(0): p = p(c): GOSUB VaciarCasilla
END IF
c1(0) = c1 'Casilla origen
c2(0) = c2 'Casilla destino
k(c1) = 1 'Casilla origen usada
k(c2) = 1 'Destino
MuevePieza:
c(p(c1)) = c2
c(p(c2)) = 0
p(c2) = p(c1)
p(c1) = 0
c = c1
GOSUB DibujarNormal
c = c2
GOSUB DibujarNormal
IF a = 7 AND ABS(c1 - c2) = 2 THEN c2 = (c1 + c2) \ 2: c1 = c3: GOTO MuevePieza
SWAP t, tt
GOTO Inicio
END IF
IF a$ = "M" AND c1 < 64 THEN c1 = c1 + 1
IF a$ = "K" AND c1 > 1 THEN c1 = c1 - 1
IF a$ = "H" AND c1 < 57 THEN c1 = c1 + 8
IF a$ = "P" AND c1 > 8 THEN c1 = c1 - 8
GOSUB DibujarNormal 'Plasmar casilla normal
IF a$ = "+" AND m < 9 THEN m = m + 1: GOTO Inicio
IF a$ = "-" AND m > 2 THEN m = m - 1: GOTO Inicio
a = ASC(a$)
IF a < 48 OR a > 57 GOTO PlasmarTabla
'Editar posicion
m = 2
a = a - 48
g(0) = 0
IF a = 0 THEN 'Vacia casilla
p = p(c)
IF p THEN GOSUB VaciarCasilla
GOTO Inicio
END IF
IF a = tt THEN SWAP t, tt 'Cambia turno
IF a = 8 THEN 'Vacia tablero
FOR p = 1 TO 32
c = c(p)
IF c THEN GOSUB VaciarCasilla
NEXT
GOTO Inicio
END IF
IF a = 9 THEN RUN 'Reinicio
IF p(c) GOTO Inicio
FOR p = p1(t) TO p2(t) 'Activa pieza
IF c(p) = 0 THEN
a(p) = a
c(p) = c
p(c) = p
k(c) = 1
GOSUB DibujarNormal
IF a = 7 THEN pr(t) = p
EXIT FOR
END IF
NEXT
GOTO Inicio
Movimiento:
c = s(s, 1) 'Origen
c2 = s(s, 2) 'Destino
a = a(p(c))
b$ = b$(a) 'Inicial de pieza
IF a < 3 AND ASC(c$(c)) - ASC(c$(c2)) THEN e$(s) = x$(c) 'Peon captura
b$ = b$ + e$(s) 'Inicial de origen
IF p(c2) THEN b$ = b$ + "x" 'Captura
b$ = b$ + c$(c2) 'Destino
IF s(s, 0) THEN a = s(s, 0): b$ = b$ + b$(a) 'Promocion
IF a = 7 AND c2 - c = 2 THEN b$ = "0-0": c3 = c2 + 1 'Enroque
IF a = 7 AND c - c2 = 2 THEN b$ = "0-0-0": c3 = c2 - 2
b$ = RIGHT$(" " + b$, 5)
RETURN
Teclado:
WHILE INKEY$ <> "" 'Lectura de teclado
WEND
a$ = ""
WHILE a$ = ""
a$ = RIGHT$(INKEY$, 1)
WEND 'Caracter derecho (Teclas de direccion =2 caracteres)
IF a$ = CHR$(27) THEN
IF J = 0 THEN SYSTEM
GOSUB DibujarNormal
GOTO PlasmarTabla
END IF 'Si no hay movimiento legal ESC finaliza, si lo hay vuelve a cursor
RETURN
VaciarCasilla:
a(p) = 0
c(p) = 0
p(c) = 0
k(c) = 1
DibujarNormal:
a = a(p(c))
I = t(p(c))
f = f(c)
Dibujar:
LINE (x(c), y(c))-(x(c) + 59, y(c) + 59), f, BF
IF a THEN
RESTORE Peon
IF a = 3 THEN RESTORE Caballo
IF a = 4 THEN RESTORE Alfil
IF a = 5 THEN RESTORE Torre
IF a = 6 THEN RESTORE Dama
IF a = 7 THEN RESTORE Rey
FOR yy = y(c) + 6 TO y(c) + 52
READ p$
FOR xx = 1 TO 60 - 30 * gg(a)
w = ASC(MID$(p$, xx)) - 48
IF w THEN
PSET (x(c) + xx - 1, yy), I(I, w)
IF gg(a) THEN PSET (x(c) + 60 - xx, yy), I(I, w)
END IF
NEXT xx, yy
END IF
RETURN
'Tabla
DATA "ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄ¿"
DATA "³BLANCAS ³ NEGRAS ³"
DATA "ÃÄÄÄÄÄÂÄÄÁÄÄÂÄÄÄÄÄ´"
DATA "³Nivel ³ ³"
DATA "³ ³ ³ ³"
DATA "ÃÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄ´"
DATA "ÃÄÄÄÄÄÁÄÄÂÄÄÁÄÄÄÄÄ´"
DATA "ÀÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÙ"
'Resultado
DATA (0-1),(1-0),(«-«),(«-«)
'Incremento segun direccion
DATA -1,1,0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0
DATA 1,2,2,1,2,-1,1,-2,-1,-2,-2,-1,-2,1,-1,2
'Piezas, control caballo, direccion de inicio, final y pasos
DATA "",1,0,2,1
DATA "",1,4,6,1
DATA "C",0,0,7,1
DATA "A",1,0,6,2
DATA "T",1,1,7,2
DATA "D",1,0,7,1
DATA "R",1,0,7,1
'Tipo de piezas
DATA 1,1,1,1,1,1,1,1,5,3,4,7,6,4,3,5
DATA 2,2,2,2,2,2,2,2,5,3,4,6,7,4,3,5
Peon:
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000111
DATA 000000000000000000000000001111
DATA 000000000000000000000000011111
DATA 000000000000000000000000011111
DATA 000000000000000000000000011111
DATA 000000000000000000000000011111
DATA 000000000000000000000000001111
DATA 000000000000000000000000000111
DATA 000000000000000000000000001111
DATA 000000000000000000000000011111
DATA 000000000000000000000000111111
DATA 000000000000000000000001111111
DATA 000000000000000000000011111111
DATA 000000000000000000000111111111
DATA 000000000000000000000111111111
DATA 000000000000000000000111111111
DATA 000000000000000000000111111111
DATA 000000000000000000000111111111
DATA 000000000000000000000111111111
DATA 000000000000000000000011111111
DATA 000000000000000000000001111111
DATA 000000000000000000000000111111
DATA 000000000000000000000000111111
DATA 000000000000000000000001111111
DATA 000000000000000000000011111111
DATA 000000000000000000000111111111
DATA 000000000000000000001111111111
DATA 000000000000000000011111111111
DATA 000000000000000000111111111111
DATA 000000000000000001111111111111
DATA 000000000000000001111111111111
DATA 000000000000000011111111111111
DATA 000000000000000011111111111111
DATA 000000000000000011111111111111
DATA 000000000000000011111111111111
DATA 000000000000000011111111111111
DATA 000000000000000011111111111111
DATA 000000000000000011111111111111
DATA 000000000000000001111111111111
DATA 000000000000000000000000000000
Caballo:
DATA 000000000000000000000000000000000000000000000000000000000000
DATA 000000000000000000000000000000000000000000000000000000000000
DATA 000000000000000000000100000000000000000000000000000000000000
DATA 000000000000000000000110000000000010000000000000000000000000
DATA 000000000000000000000111000000000110000000000000000000000000
DATA 000000000000000000000111100000001110000000000000000000000000
DATA 000000000000000000000111110000011110000000000000000000000000
DATA 000000000000000000000111111000111110000000000000000000000000
DATA 000000000000000000000111111101111110000000000000000000000000
DATA 000000000000000000000111111111111111100000000000000000000000
DATA 000000000000000000011111111111111111111000000000000000000000
DATA 000000000000000000111111111111111111111110000000000000000000
DATA 000000000000000001111111111111111111111111000000000000000000
DATA 000000000000000001111111111111111122111111100000000000000000
DATA 000000000000000011111111111111111111221111110000000000000000
DATA 000000000000000011111111111111111111112111111000000000000000
DATA 000000000000000111111221111111111111111211111100000000000000
DATA 000000000000000111112221111111111111111121111100000000000000
DATA 000000000000000111122211111111111111111112111110000000000000
DATA 000000000000001111122111111111111111111112111110000000000000
DATA 000000000000001111111111111111111111111111211111000000000000
DATA 000000000000001111111111111111111111111111211111000000000000
DATA 000000000000001111111111111111111111111111211111000000000000
DATA 000000000000011111111111111111111111111111121111100000000000
DATA 000000000000011111111111111111111111111111121111100000000000
DATA 000000000000111111111111111111111111111111121111100000000000
DATA 000000000000111111111111111111111111111111112111110000000000
DATA 000000000001111111111111111110111111111111112111110000000000
DATA 000000000001111111111111111000011111111111112111110000000000
DATA 000000000011121111111111100000011111111111112111110000000000
DATA 000000000011221111111110000000111111111111112111110000000000
DATA 000000000011221111111100000001111111111111112111110000000000
DATA 000000000011111111111000000011111111111111112111110000000000
DATA 000000000000111111110000000111111111111111112111110000000000
DATA 000000000000000111100000001111111111111111111211111000000000
DATA 000000000000000011000000011111111111111111111211111000000000
DATA 000000000000000000000000111111111111111111111211111000000000
DATA 000000000000000000000000111111111111111111111211111000000000
DATA 000000000000000000000001111111111111111111111211111000000000
DATA 000000000000000000000001111111111111111111111211111000000000
DATA 000000000000000000000011111111111111111111111211111000000000
DATA 000000000000000000000011111111111111111111111211111000000000
DATA 000000000000000000000111111111111111111111111211111000000000
DATA 000000000000000000000111111111111111111111111211111000000000
DATA 000000000000000000000111111111111111111111111111111000000000
DATA 000000000000000000000111111111111111111111111111111000000000
DATA 000000000000000000000000000000000000000000000000000000000000
Alfil:
DATA 000000000000000000000000000011
DATA 000000000000000000000000000111
DATA 000000000000000000000000000111
DATA 000000000000000000000000000011
DATA 000000000000000000000000000001
DATA 000000000000000000000000000011
DATA 000000000000000000000000000111
DATA 000000000000000000000000001111
DATA 000000000000000000000000011111
DATA 000000000000000000000000111111
DATA 000000000000000000000001111111
DATA 000000000000000000000011111111
DATA 000000000000000000000011111111
DATA 000000000000000000000111111111
DATA 000000000000000000000111111111
DATA 000000000000000000001111111112
DATA 000000000000000000001111111112
DATA 000000000000000000011111111112
DATA 000000000000000000011111111112
DATA 000000000000000000111111122222
DATA 000000000000000000111111122222
DATA 000000000000000000111111111112
DATA 000000000000000000111111111112
DATA 000000000000000000111111111112
DATA 000000000000000000111111111112
DATA 000000000000000000111111111111
DATA 000000000000000000111111111111
DATA 000000000000000000011111111111
DATA 000000000000000000001111111111
DATA 000000000000000000000111112222
DATA 000000000000000000000012221111
DATA 000000000000000000000011111111
DATA 000000000000000000000011111111
DATA 000000000000000000000011111111
DATA 000000000000000000000111112222
DATA 000000000000000000000122221111
DATA 000000000000000000000111111111
DATA 000000000000000000000001111111
DATA 000000000000000000000000001111
DATA 000000000000000000000000000111
DATA 000000000000000000000111111111
DATA 000000000000000111111111111111
DATA 000000000000011111111111111111
DATA 000000000001111111111111111110
DATA 000000000111111111111110000000
DATA 000000000011111110000000000000
DATA 000000000001111000000000000000
Torre:
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000001111100000011111
DATA 000000000000001111100000011111
DATA 000000000000001111100000011111
DATA 000000000000001111100000011111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000001222222222222222
DATA 000000000000000111111111111111
DATA 000000000000000011111111111111
DATA 000000000000000001111111111111
DATA 000000000000000000111111111111
DATA 000000000000000000012222222222
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000011111111111
DATA 000000000000000000012222222222
DATA 000000000000000000111111111111
DATA 000000000000000001111111111111
DATA 000000000000000011111111111111
DATA 000000000000000111111111111111
DATA 000000000000001111111111111111
DATA 000000000000012222222222222222
DATA 000000000000111111111111111111
DATA 000000000000111111111111111111
DATA 000000000000111111111111111111
DATA 000000000000111111111111111111
DATA 000000000000111111111111111111
DATA 000000000000000000000000000000
Dama:
DATA 000000000000000000000000000000
DATA 000000000000000000000000000000
DATA 000000000000000000000000000011
DATA 000000000000000000000000000111
DATA 000000000000000000000000000111
DATA 000000000000000000000000000111
DATA 000000000000000000111100000011
DATA 000000000000000001111110000001
DATA 000000000000000001111110000001
DATA 000000000111000000111100000001
DATA 000000001111100000011000000001
DATA 000000001111100000011000000011
DATA 000000000111000000011000000011
DATA 000000000010000000011000000011
DATA 000000000010000000011000000011
DATA 000000000011000000011100000011
DATA 000000000011000000011100000111
DATA 000000000011100000011100000111
DATA 000000000011100000011100000111
DATA 000000000011110000111110000111
DATA 000000000011110000111110000111
DATA 000000000011111000111110001111
DATA 000000000011111000111110001111
DATA 000000000011111100111111001111
DATA 000000000011111100111111001111
DATA 000000000011111110111111001111
DATA 000000000001111110111111222222
DATA 000000000001111112222222111111
DATA 000000000000122221111111111111
DATA 000000000000111111111111111111
DATA 000000000000011111111111111111
DATA 000000000000011111111111111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000000111111111111111
DATA 000000000000000111111122222222
DATA 000000000000000012222211111111
DATA 000000000000000011111111111111
DATA 000000000000000011111111111111
DATA 000000000000000111111111111111
DATA 000000000000000111111111111111
DATA 000000000000000111111122222222
DATA 000000000000001122222211111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000000000111111111111
DATA 000000000000000000000011111111
Rey:
DATA 000000000000000000000000000001
DATA 000000000000000000000000000001
DATA 000000000000000000000000000001
DATA 000000000000000000000000011111
DATA 000000000000000000000000011111
DATA 000000000000000000000000000001
DATA 000000000000000000000000000001
DATA 000000000000000000000000000001
DATA 000000000000000000000000000111
DATA 000000000000000000000000001111
DATA 000000000000000000000000011122
DATA 000000000000000000000000111211
DATA 000000000000000000000000111211
DATA 000000000011111100000000111211
DATA 000000000111111111000000011121
DATA 000000001111111111110000011121
DATA 000000011112222111111100001112
DATA 000000111121111221111110001112
DATA 000000111211111112211111000111
DATA 000001111211111111121111100111
DATA 000001111211111111112111111111
DATA 000001111211111111111211111111
DATA 000001111211111111111121111111
DATA 000001111211111111111112111111
DATA 000001111211111111111111211111
DATA 000001111211111111111111121111
DATA 000000111121111111111111112111
DATA 000000111112111111111111112111
DATA 000000011111211111111111111211
DATA 000000001111121111111111111211
DATA 000000000111112111111111111121
DATA 000000000011111211111111111121
DATA 000000000001111121111111111111
DATA 000000000000111112111111111111
DATA 000000000000111111111111111111
DATA 000000000000011111111122222222
DATA 000000000000011222222211111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000001111111122222222
DATA 000000000000001122222211111111
DATA 000000000000001111111111111111
DATA 000000000000001111111111111111
DATA 000000000000000000111111111111
DATA 000000000000000000000011111111