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), L(16), LL(16) 'Jugadas permitidas y control contadores
DIM M(200), E(7, 64) 'Control ordenacion y destino repetido
DIM U(7, 7), D(16) 'Comprueba jaques y direccion ataque de peon
DIM B$(7), D$(200, 2) 'Inicial y totales
DIM E$(200), C$(64), X$(64), Y$(64) 'Repetidos y casillas
DIM V$(30), W$(4)
READ V$(0), V$(1), V$(2), W$(0), W$(1), W$(2), W$(3), W$(4) 'Tabla
I(1, 1) = 15 'Tinta blancas
I(1, 2) = 0 'Perfil
I(2, 1) = 0
I(2, 2) = 15
FOR V = 2 TO 198 'Totales
D$(V, 1) = RIGHT$(" " + STR$(V - 1), 4) + " "
D$(V, 2) = D$(V, 1)
NEXT
FOR V = 0 TO 1
FOR W = 1 TO 2
READ D$(V, W) 'Resultado
D$(200 - V, 3 - W) = D$(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
D(D) = 1 - D MOD 2 'Ataque de peon
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 * D(D) 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 - 1 'Columna
X$(C) = CHR$(X + 97)
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
Y(C) = 60 * (7 - Y) 'Fila
X(C) = 60 * X 'Columna
GOSUB 2000 'Plasmar en pantalla
IF X = 7 THEN F = F(C - 1) 'Primera columna, repite fondo
FOR D = 0 TO 15 'Total de direcciones
H = 0 'Alcance
IX = IX(D) 'Incremento segun direccion
IY = IY(D)
XX = X + 1 'Copia coordenadas
YY = Y
100 XX = XX + IX 'Incremento
YY = YY + IY
IF XX < 1 OR XX > 8 OR YY < 0 OR YY > 7 GOTO 200 'Supera los limites del tablero
IF D < 8 THEN H = H + 1: N(C, D, H) = XX + 8 * YY: GOTO 100 'Casilla destino
N(C, D - 8, 0) = XX + 8 * YY: H(3, C, D - 8) = -1 'Destino y alcance del caballo
200 FOR A = 1 TO 7 * SGN(H) 'Si hay alcance
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: IF A(P(C)) = A THEN H(A, C, D) = 2 - D(D)
IF A = 7 THEN H(A, C, D) = 1: IF A(P(C)) = 7 AND (D = 7 OR D = 3) THEN H(A, C, D) = 2
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
300 ZT = TIMER 'Inicio rutina principal
JQ = 0
JJ = 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
J = 1
320 PC1(J) = P1(T) 'Numero de pieza
340 C1(J) = C(PC1(J)) 'Casilla de la pieza
IF C1(J) = 0 GOTO 480 'Pieza nula
AA(J) = A(PC1(J)) 'Tipo de pieza
DD(J) = D1(AA(J)) 'Direccion inicial
360 HH(J) = H(AA(J), C1(J), DD(J)) 'Alcance total
IF HH(J) = 0 GOTO 470 'No hay alcance
G(J) = GG(AA(J)) 'Alcance inicial (0 para el caballo)
380 C2(J) = N(C1(J), DD(J), G(J)) 'Casilla destino
PC2(J) = P(C2(J)) 'Pieza en destino
IF T(PC2(J)) = T GOTO 470 'Mismo bando
IF AA(J) = T THEN 'Rutina peon
IF D(DD(J)) = SGN(PC2(J)) GOTO 400 'Peon util
IF PC2(J) OR AA(J - 1) > 2 OR G(J - 1) < 2 GOTO 470 'No evalua al paso
IF C2(J) + C2(J) - C1(J - 1) - C2(J - 1) GOTO 470
C3(J) = 2 'Control
C4(J) = C2(J - 1) 'Casilla de captura al paso
END IF
400 IF A(PC2(J)) = 7 THEN JQ = 1: GOTO 500 'Rey rival amenazado
IF AA(J) = Q(C1(J)) THEN A(PC1(J)) = 6: C0(J) = 6 'Promocion
IF AA(J) = 7 AND G(J) = 2 THEN 'Rutina enroque
IF K(R(T)) + PC2(J) + JQ(J) GOTO 470 'Rey movido, destino ocupado, intermedia amenazada
C = R(T) 'Casilla del rey en origen
D = 0 'Direcciones para busqueda de jaques
410 P = P(N(C, D, 0))
IF T(P) = TT AND A(P) = 3 GOTO 470 'Jaque con caballo
G = 1
H = H(6, C, D) + 1
420 IF G < H THEN
P = P(N(C, D, G))
IF P = 0 THEN G = G + 1: GOTO 420
IF T(P) = TT AND G < U(A(P), D) GOTO 470 'Jaque
END IF
IF D < 7 THEN D = D + 1: GOTO 410
IF DD(J) = 3 AND K(R(T) + 3) = 0 THEN C3(J) = R(T) + 3 'Enroque corto
IF DD(J) = 7 AND K(R(T) - 4) = 0 AND P(R(T) - 3) = 0 THEN C3(J) = R(T) - 4
IF C3(J) = 0 GOTO 470
C4(J) = (C1(J) + C2(J)) \ 2 'Destino torre
END IF
430 K(C1(J)) = K(C1(J)) + 1 'Casilla origen usada
K(C2(J)) = K(C2(J)) + 1 'Destino
C(PC1(J)) = C2(J)
C(PC2(J)) = 0
P(C1(J)) = 0
P(C2(J)) = PC1(J)
IF C3(J) THEN
IF C3(J) = 2 THEN 'Al paso
PC4(J) = P(C4(J))
C(PC4(J)) = 0
P(C4(J)) = 0
ELSE PC3(J) = P(C3(J)) 'Torre de enroque
C(PC3(J)) = C4(J)
P(C3(J)) = 0
P(C4(J)) = PC3(J)
END IF
END IF
IF J < M THEN J = J + 1: SWAP T, TT: GOTO 320 '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
440 K(C1(J)) = K(C1(J)) - 1 'Restaura jugada simulada
K(C2(J)) = K(C2(J)) - 1
C(PC1(J)) = C1(J)
C(PC2(J)) = C2(J)
P(C1(J)) = PC1(J)
P(C2(J)) = PC2(J)
IF C3(J) THEN
IF C3(J) = 2 THEN 'Al paso
C(PC4(J)) = C4(J)
P(C4(J)) = PC4(J)
ELSE C(PC3(J)) = C3(J) 'Enroque
P(C3(J)) = PC3(J)
P(C4(J)) = 0
END IF
C3(J) = 0
END IF
JQ(J) = JQ
IF JQ THEN
JQ = 0
ELSE J(1, J) = J(1, J) + 2 'Jugadas posibles
IF J = M GOTO 450
IF J > 1 THEN
FOR V = 1 TO M - J 'Evaluar contadores
IF L(V) = SGN(J(V + 1, J + V) - J(V, J + V)) THEN J(V + 1, J + V) = J(V, J + V)
NEXT
ELSE JJ = JJ + 1 'Guardar jugada
M(JJ) = M - 1
FOR V = 1 TO M(JJ)
IF J(V, V + 1) > 1 THEN 'Guarda valor mayor
JJ(JJ, V) = J(V, V + 1) \ 2 + 1
ELSE JJ(JJ, V) = J(V, V + 1) 'Mate o ahogado
JJ(JJ, V + 1) = 200 - JJ(JJ, V)
M(JJ) = V + (M - V + 1) MOD 2
EXIT FOR
END IF
NEXT
S(JJ, 0) = C0(1)
S(JJ, 1) = C1(1)
S(JJ, 2) = C2(1)
END IF
END IF
FOR V = J TO M - 1 'Reinicio de contadores
FOR W = 1 TO M - V
J(W, V + W) = LL(W)
NEXT W, V
450 IF C0(J) THEN 'Subpromocion
C0(J) = C0(J) - 1
IF AA(J) < A(PC1(J)) THEN A(PC1(J)) = C0(J): IF C0(J) > 2 GOTO 430
GOTO 450
END IF
IF PC2(J) = 0 AND G(J) < HH(J) THEN G(J) = G(J) + 1: GOTO 380 'Alcance mas
470 IF DD(J) < D2(AA(J)) THEN DD(J) = DD(J) + D3(AA(J)): GOTO 360 'Direccion mas
480 IF PC1(J) < P2(T) THEN PC1(J) = PC1(J) + 1: GOTO 340 'Pieza siguiente
IF J(1, J) = 0 THEN 'Mate o ahogado
J(1, J) = 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, J) = 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, J) = 0: D = 7 'Mate
EXIT FOR
END IF
NEXT G, D
END IF
500 J = J - 1 'Nivel menos
IF J THEN SWAP T, TT: GOTO 440
600 FOR V = 1 TO JJ '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
Z = TIMER - ZT + .1
C1 = R(T) 'Casilla del rey en origen
V1 = -1
IF JJ 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 JJ
E(A(P(S(W, 1))), S(W, 2)) = 0 'Reinicio repetidos
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 1500
V1 = V
V$ = W$(1)
MID$(V$, 12 * X - 10) = D$(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$ = D$(JJ + 1, T) 'Total de jugadas
ELSE M = 1
J$ = D$(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$
610 FOR V = 0 TO 28
LOCATE V + 1, 61
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 2200 'Plasmar cursor
GOSUB 1000 'Lectura de teclado
IF A$ = CHR$(13) GOTO 620 'INTRO elige origen
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 2100 'Plasmar casilla normal
IF A$ = "+" AND M < 9 THEN M = M + 1: GOTO 300
IF A$ = "-" AND M > 2 THEN M = M - 1: GOTO 300
A = ASC(A$)
IF A < 48 OR A > 57 GOTO 610
M = 2
A = A - 48
G(0) = 0
IF A = 0 THEN 'Vacia casilla
P = P(C)
IF P THEN A(P) = 0: C(P) = 0: P(C) = 0: K(C) = 1: GOSUB 2100
GOTO 300
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 A(P) = 0: C(P) = 0: P(C) = 0: K(C) = 1: GOSUB 2100
NEXT
GOTO 300
END IF
IF A = 9 THEN RUN 'Reinicio
IF P(C) GOTO 300 'Vuelve a cursor
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 2000
IF A = 7 THEN PR(T) = P
EXIT FOR
END IF
NEXT
GOTO 300
620 S = JJ + 1 AND A$ = "K" 'Numero de movimiento
C = 0 'Control posible/no posible
630 S = S + (1 OR A$ = "K") 'Movimiento siguiente
IF S <= JJ AND S GOTO 640 'Salta si esta en rango
IF C GOTO 620 'Misma pieza
GOTO 610 'Vuelve al cursor
640 IF S(S, 1) <> C1 GOTO 630 'No coincide con la elegida
GOSUB 1500
Y = 2 * V1 + 2
LOCATE Y, 68
PRINT B$
X = T
FOR V = 1 TO M 'Plasmar maximos
X = X + 1
IF X = 3 THEN X = 1: Y = Y + 2
D$ = D$(JJ(S, V), X)
IF V > ABS(M(S)) OR JJ(S, V) > 198 THEN D$ = " "
LOCATE Y, 50 + 12 * X
PRINT D$;
NEXT
C = C2
F = 9 - T
GOSUB 2200 'Pieza elegida en destino
GOSUB 1000 'Cualquier tecla
GOSUB 2000 'Normaliza destino
I = T
IF A$ <> CHR$(13) GOTO 630 '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): C(P(C)) = 0: P(C) = 0: GOSUB 2100
END IF
C1(0) = C1 'Casilla origen
C2(0) = C2 'Casilla destino
K(C1) = 1 'Casilla origen usada
K(C2) = 1 'Destino
650 C(P(C1)) = C2
C(P(C2)) = 0
P(C2) = P(C1)
P(C1) = 0
C = C1
GOSUB 2100
C = C2
GOSUB 2100
IF A = 7 AND ABS(C1 - C2) = 2 THEN C2 = (C1 + C2) \ 2: C1 = C3: GOTO 650
SWAP T, TT
GOTO 300
1000 IF INKEY$ <> "" GOTO 1000 'Lectura de teclado
1010 A$ = RIGHT$(INKEY$, 1) 'Caracter derecho (Teclas de direccion =2 caracteres)
IF A$ = "" GOTO 1010
IF A$ = CHR$(27) THEN
IF JJ THEN GOSUB 2000: GOTO 610
SYSTEM 'Si no hay movimiento legal ESC finaliza, si lo hay vuelve a cursor
END IF
RETURN
1500 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
2000 I = T(P(C)) 'Bando
2100 A = A(P(C)) 'Tipo de pieza
F = F(C) 'Fondo de casilla
2200 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