RANDOMIZE TIMER GLOBAL PAWN1,PAWN2,HORSE1,HORSE2,BISHOP1,BISHOP2 GLOBAL CASTLE1,CASTLE2,QUEEN1,QUEEN2,KING1,KING2 PAWN1=4 PAWN2=36 HORSE1=6 HORSE2=38 BISHOP1=8 BISHOP2=40 CASTLE1=10 CASTLE2=42 QUEEN1=12 QUEEN2=44 KING1=14 KING2=46 CELL SIZE 0,1 CELL SIZE 1,1 NEWGAME: CLS 0 PAL 0 BG 0 FOR X=1 TO 8 PAL 1 CELL X,1,4 PAL 2 CELL X,6,36 NEXT X PAL 1 CELL 2,0,HORSE1 CELL 7,0,HORSE1 CELL 3,0,BISHOP1 CELL 6,0,BISHOP1 CELL 1,0,CASTLE1 CELL 8,0,CASTLE1 CELL 5,0,QUEEN1 CELL 4,0,KING1 PAL 2 CELL 2,7,HORSE2 CELL 7,7,HORSE2 CELL 3,7,BISHOP2 CELL 6,7,BISHOP2 CELL 1,7,CASTLE2 CELL 8,7,CASTLE2 CELL 4,7,QUEEN2 CELL 5,7,KING2 CALL NEWBOARD DO CALL MOVE(1) CALL MOVE(2) CALL NEWBOARD LOOP SUB NEWBOARD PAL 0 BG 1 I=34 FOR Y=0 TO 7 FOR X=1 TO 8 ADD I,32,2 TO 34 CELL X,Y,I NEXT X ADD I,2,2 TO 4 NEXT Y FOR I=1 TO 4 C1=64 C0=99 WHILE C1>=64 OR (C0<>0 AND C0>15) X=RND(7)+1 Y=RND(7) BG 1 C1=CELL.C(X,Y) BG 0 C0=CELL.C(X,Y) WEND BG 1 CELL X,Y,C1+62 NEXT I END SUB SUB MOVE(P) RECHECK=1 WHILE RECHECK>0 X=RND(7)+1 Y=RND(7) BG 0 C=CELL.C(X,Y) PP=CELL.A(X,Y) IF PP=P THEN BG 1 IF CELL.C(X,Y)>=64 AND RND(1)=0 THEN CJ=0 WHILE CJ<64 X2=RND(7)+1 Y2=RND(7) CJ=CELL.C(X2,Y2) WEND BG 0 IF CELL.C(X2,Y2)=0 THEN CELL X,Y,0 WAIT 30 PAL 1 CELL X2,Y2,C PLAY 1,90,30 WAIT 60 RECHECK=0 ELSE INC RECHECK END IF ELSE IF C=PAWN1 AND P=1 AND Y<7 THEN CALL DOPAWN1(X,Y,C,P,RECHECK) ELSE IF C=PAWN2 AND P=2 AND Y>0 THEN CALL DOPAWN2(X,Y,C,P,RECHECK) ELSE IF C=HORSE1 OR C=HORSE2 THEN CALL DOHORSE(X,Y,C,P,RECHECK) ELSE INC RECHECK IF RECHECK>100 THEN RECHECK=0 PLAY 0,40,5 WAIT VBL END IF END IF END IF END IF WEND END SUB SUB GET(X,Y,C0,C1,A0,A1) BG 0 C0=CELL.C(X,Y) A0=CELL.A(X,Y) BG 1 C1=CELL.C(X,Y) A1=CELL.A(X,Y) END SUB SUB DOPAWN1(X,Y,C,P,RECHECK) DIM C0(10),C1(10),P0(10),P1(10) CALL GET(X,Y+1,C0(0),C1(0),P0(0),P1(0)) CALL GET(X,Y+2,C0(1),C1(1),P0(1),P1(1)) CALL GET(X-1,Y+1,C0(2),C1(2),P0(2),P1(2)) CALL GET(X+1,Y+1,C0(3),C1(3),P0(3),P1(3)) IF Y=1 THEN DY=RND(1)+1 ELSE DY=1 IF DY=2 THEN DX=0 ELSE DX=RND(2)-1 IGO=0 IF DX=0 AND DY=1 AND C0(0)=0 AND C1(0)>0 THEN IGO=1 IF DX=0 AND DY=2 AND C0(0)=0 AND C0(1)=0 AND C1(1)>0 THEN IGO=1 IF DX=-1 AND C1(2)>0 AND C0(2)>0 AND P0(2)=2 THEN IGO=1 IF DX=1 AND C1(3)>0 AND C0(3)>0 AND P0(3)=2 THEN IGO=1 IF IGO=1 THEN BG 0 PAL 1 CELL X,Y,0 WAIT 30 CELL X+DX,Y+DY,C RECHECK=0 PLAY 0,90,1 WAIT 60 ELSE INC RECHECK END IF END SUB SUB DOPAWN2(X,Y,C,P,RECHECK) DIM C0(10),C1(10),P0(10),P1(10) CALL GET(X,Y-1,C0(0),C1(0),P0(0),P1(0)) CALL GET(X,Y-2,C0(1),C1(1),P0(1),P1(1)) CALL GET(X-1,Y-1,C0(2),C1(2),P0(2),P1(2)) CALL GET(X+1,Y-1,C0(3),C1(3),P0(3),P1(3)) IF Y=1 THEN DY=RND(1)+1 ELSE DY=1 IF DY=2 THEN DX=0 ELSE DX=RND(2)-1 IGO=0 IF DX=0 AND DY=1 AND C0(0)=0 AND C1(0)>0 AND C1(0)<64 THEN IGO=1 IF DX=0 AND DY=2 AND C0(0)=0 AND C0(1)=0 AND C1(1)>0 AND C1(1)<64 THEN IGO=1 IF DX=-1 AND C1(2)>0 AND C0(2)>0 AND P0(2)=1 AND C1(2)<64 THEN IGO=1 IF DX=1 AND C1(3)>0 AND C0(3)>0 AND P0(3)=1 AND C1(3)<64 THEN IGO=1 IF IGO=1 THEN BG 0 PAL 2 CELL X,Y,0 WAIT 30 CELL X+DX,Y-DY,C RECHECK=0 PLAY 0,90,1 WAIT 60 ELSE INC RECHECK END IF END SUB SUB DOHORSE(X,Y,C,P,RECHECK) INC RECHECK RR=RECHECK+10 IGO=0 WHILE RECHECK>0 AND RECHECK0 THEN IF (P=2 AND C1<64) OR P=1 THEN IGO=1 ELSE IF C0>0 AND P0<>P THEN IF (P=2 AND C1<64) OR P=1 THEN IGO=1 ELSE INC RECHECK END IF IF IGO=1 THEN TRACE "IGO",C BG 0 PAL P CELL X,Y,0 WAIT 30 CELL X+DX,Y+DY,C RECHECK=0 PLAY 0,90,1 WAIT 60 ELSE INC RECHECK END IF WEND END SUB #1:MAIN PALETTES 153F2A0000372712000D0904003F3C00 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 00000000030707070000000304080808 00000000C0E0E0E0000000C020101010 0000000003070F0D0000000304091012 0000008080C0C0C00000804040202020 00000001010207070000010202050808 0000808040C0E0E000804040A0201010 00000005070703030000050A08080404 00000040C0C08080000040A020204040 0000000606021A1A00000609091D2524 00000060604058580000609090B8A424 0000192B4953514800192654B6ACAEB6 000098D492CA8A120098642A6D35756D 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 0301031F0F00000004020C100F000000 C080C0F8F000000020403008F0000000 03070F3F1F0000000C0810201F000000 C080C0F0E000000020402010E0000000 0301071F0F000000040608100F000000 C080E0F8F000000020601008F0000000 0303071F0F000000040408100F000000 8080C0F0E000000040402010E0000000 0C0C06071F0F000010100808100F0000 303060E0F8F000000808101008F00000 241008071F0F0000582C1608100F0000 240810E0F8F000001A34681008F00000 FFFFFFFF2424765600000000DBDB89FF FFFFFFFF4C44C0C000000000B3BB3FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000000030707070000000304080808 00000000C0E0E0E0000000C020101010 00000002030707070000020504090808 0000000080C0E0600000008040201090 00000101020307070001020205040808 000000808040E0E00000804040A01010 00000002030301010000020504040202 000000A0E0E0C0C00000A05010102020 000000182402324A000018245A3D4DB4 0000001824404C52000018245ABCB22D 00001E3F73616362001E21408C9E9C9C 000078FCCE86C6460078840231793939 548CFFFFFFFFFFFFFFFFFFFFFFFFFFFF 484CFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0301031F0F00000004020C100F000000 C080C0F8F000000020403008F0000000 0703071F0F000000080408100F000000 80C0E0F8F000000060201008F0000000 0301071F0F000000040608100F000000 C080E0F8F000000020601008F0000000 0101030F070000000202040807000000 C0C0E0F8F000000020201008F0000000 040406071F0F000058180808100F0000 202060E0F8F000001A18101008F00000 60303C1C1E0F00009C4C4223110F0000 060C3C3878F00000393242C488F00000 FFFFFFFCF0F0E0E00000030C10102020 FFFFFF3F0F0F07070000C03008080404 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 E0E0F0F0FCFFFFFF202010100C030000 07070F0F3FFFFFFF0404080830C00000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFCF0E0E0C0C0FFFFFFFCF0F0E0E0 FFFF3F0F07070303FFFFFF3F0F0F0707 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 C0C0E0E0F0FCFFFFE0E0F0F0FCFFFFFF 030307070F3FFFFF07070F0F3FFFFFFF