TOUCHSCREEN RANDOMIZE TIMER GLOBAL ISCORE DIM GLOBAL BOARD(5,4) DIM GLOBAL CBOARD(11) FOR I=1 TO 11 READ CBOARD(I) NEXT I DATA 64,66,68,70,72,74,76,78,96,98,100 ISCORE=110 SPRITE 1,,,128 SPRITE 2,,,128 SPRITE 1 PAL 0 SIZE 3 SPRITE 2 PAL 0 SIZE 3 NEWBOARD: BG 1 PAL 0 FOR X=0 TO 16 STEP 4 FOR Y=0 TO 12 STEP 4 CALL CARD(X,Y,0) NEXT Y NEXT X TRACK 0,2 IMATCH=0 ISCORE=ISCORE-10 BG 0 NUMBER 0,0,ISCORE,3 WAIT VBL IF ISCORE<0 THEN END FOR Y=0 TO 3 FOR X=0 TO 4 BOARD(X,Y)=0 NEXT X NEXT Y FOR II=1 TO 2 FOR I=1 TO 10 C=99 WHILE C<>0 PX=RND(4) PY=RND(3) C=BOARD(PX,PY) WEND BOARD(PX,PY)=I NEXT I NEXT II PX=RND(4) PY=RND(3) BOARD(PX,PY)=11 NEWTURN: IF IMATCH=9 THEN GOTO NEWBOARD PAL 3 BG 0 NUMBER 0,0,ISCORE,3 BG 1 CARD1: DO IF TOUCH THEN TX=(TOUCH.X\32)*4 TY=(TOUCH.Y\32)*4 IF BOARD(TX\4,TY\4)<>0 THEN CALL FLIPUP(TX,TY) GOTO CARD2 END IF END IF WAIT VBL LOOP CARD2: DO IF TOUCH THEN TX2=(TOUCH.X\32)*4 TY2=(TOUCH.Y\32)*4 IF TX2=TX AND TY2=TY THEN ELSE IF BOARD(TX2\4,TY2\4)<>0 THEN CALL FLIPUP(TX2,TY2) RESULT=0 CALL MATCHCHECK(TX,TY,TX2,TY2,RESULT) IF RESULT=0 THEN GOTO NOMATCH ELSE INC IMATCH ADD ISCORE,3,0 TO 999 BG 0 PAL 3 NUMBER 0,0,ISCORE,3 WAIT VBL IF IMATCH<9 THEN GOTO YESMATCH ELSE GOTO NEWTURN END IF END IF END IF END IF WAIT VBL LOOP NOMATCH: WAIT 15 CALL FLIPDOWN(TX,TY) CALL FLIPDOWN(TX2,TY2) WAIT 15 ISCORE=ISCORE-1 GOTO NEWTURN YESMATCH: C=0 WHILE C=0 PX=RND(4) PY=RND(3) C=BOARD(PX,PY) WEND TRYAGAIN: C2=0 WHILE C2=0 PX2=RND(4) PY2=RND(3) C2=BOARD(PX2,PY2) WEND IF PX=PX2 AND PY=PY2 THEN GOTO TRYAGAIN WAIT 60 CALL DELETEITEM(PX*4,PY*4) CALL DELETEITEM(PX2*4,PY2*4) BOARD(PX,PY)=C2 BOARD(PX2,PY2)=C DX=(PX-PX2)*32 DY=(PY-PY2)*32 SX=PX*32 SY=PY*32 SX2=PX2*32 SY2=PY2*32 SPRITE 1,SX,SY, SPRITE 2,SX2,SY2, II=SQR(DX*DX+DY*DY) IX=DX/II IY=DY/II PLAY 3,40,60 SOUND 4 FOR I= 1 TO II SPRITE 1,SX-I*IX,SY-I*IY, SPRITE 2,SX2+I*IX,SY2+I*IY, WAIT 2 NEXT I SPRITE 1,200,200, SPRITE 2,200,200, PAL 0 CALL CARD(PX*4,PY*4,0) CALL CARD(PX2*4,PY2*4,0) GOTO NEWTURN SUB CARD(X,Y,R) FOR I=0 TO 3 CELL X,Y+I,0 CELL X+3,Y+I,0 NEXT I CELL X+2,Y,1 CELL X+2,Y+1,17 CELL X+2,Y+2,17 CELL X+2,Y+3,33 IF R=0 THEN C1=2 C2=1 ELSE IF R>0 AND R<7 THEN C1=2+R C2=1 ELSE IF R>=7 THEN C1=0 C2=R-6 END IF IF C1>0 THEN CELL X,Y,C1 CELL X+1,Y,C2 IF R>6 THEN CELL X+2,Y,C2+8 IF C1>0 THEN CELL X+3,Y,C1+7 IF C1>0 THEN CELL X,Y+1,C1+16 CELL X+1,Y+1,C2+16 IF R>6 THEN CELL X+2,Y+1,C2+16+8 IF C1>0 THEN CELL X+3,Y+1,C1+7+16 IF C1>0 THEN CELL X,Y+2,C1+16 CELL X+1,Y+2,C2+16 IF R>6 THEN CELL X+2,Y+2,C2+16+8 IF C1>0 THEN CELL X+3,Y+2,C1+7+16 IF C1>0 THEN CELL X,Y+3,C1+32 CELL X+1,Y+3,C2+32 IF R>6 THEN CELL X+2,Y+3,C2+32+8 IF C1>0 THEN CELL X+3,Y+3,C1+7+32 END SUB SUB CARDUP(X,Y) CALL CARD(X,Y,0) END SUB SUB FLIPUP(X,Y) BG 1 PAL 0 FOR I=1 TO 14 PLAY 0,40+I*3,1 SOUND 1 CALL CARD(X,Y,I) WAIT VBL NEXT I PAL 1 FOR I=14 TO 1 STEP -1 PLAY 0,40+I*3,1 SOUND 1 CALL CARD(X,Y,I) WAIT VBL NEXT I CALL CARDUP(X,Y) CALL SHOWITEM(X,Y) END SUB SUB FLIPDOWN(X,Y) CALL REMOVEITEM(X,Y) BG 1 PAL 1 FOR I=1 TO 14 REM PLAY 0,40+I*3,1 CALL CARD(X,Y,I) WAIT VBL NEXT I PAL 0 FOR I=14 TO 1 STEP -1 REM PLAY 0,40+I*3,1 CALL CARD(X,Y,I) WAIT VBL NEXT I CALL CARDUP(X,Y) END SUB SUB SHOWITEM(X,Y) BG 0 PAL 2 IX=X\4 IY=Y\4 CH=CBOARD(BOARD(IX,IY)) IF CH=100 THEN PLAY 3,20,60 SOUND 2 CELL X+1,Y+1,CH CELL X+2,Y+1,CH+1 CELL X+1,Y+2,CH+16 CELL X+2,Y+2,CH+17 END SUB SUB REMOVEITEM(X,Y) BG 0 PAL 2 CELL X+1,Y+1,0 CELL X+2,Y+1,0 CELL X+1,Y+2,0 CELL X+2,Y+2,0 END SUB SUB MATCHCHECK(X,Y,X2,Y2,R) IX=X\4 IY=Y\4 CH=BOARD(IX,IY) IX=X2\4 IY=Y2\4 CH2=BOARD(IX,IY) IF CH=CH2 THEN PLAY 0,60,30 SOUND 0 WAIT 120 INC ISCORE CALL DELETEITEM(X,Y) CALL DELETEITEM(X2,Y2) R=1 END IF END SUB SUB DELETEITEM(X,Y) CALL REMOVEITEM(X,Y) BG 1 FOR IX=0 TO 3 FOR IY=0 TO 3 CELL X+IX,Y+IY,0 NEXT IY NEXT IX BOARD(X\4,Y\4)=0 END SUB #1:MAIN PALETTES 090B0702003F2A15003C0430003F3F00 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 000000000000000000FFFFFFFFFFFFFF 0000000000000000007F7F7F7F7F7F7F 0000000000000000003F3F3F3F3F3F3F 0000000000000000001F1F1F1F1F1F1F 0000000000000000000F0F0F0F0F0F0F 00000000000000000007070707070707 00000000000000000003030303030303 00000000000000000001010101010101 000000000000000000FEFEFEFEFEFEFE 000000000000000000FCFCFCFCFCFCFC 000000000000000000F8F8F8F8F8F8F8 000000000000000000F0F0F0F0F0F0F0 000000000000000000E0E0E0E0E0E0E0 000000000000000000C0C0C0C0C0C0C0 00000000000000000080808080808080 00000000000000000000000000000000 0000000000000000FFFFFFFFFFFFFFFF 00000000000000007F7F7F7F7F7F7F7F 00000000000000003F3F3F3F3F3F3F3F 00000000000000001F1F1F1F1F1F1F1F 00000000000000000F0F0F0F0F0F0F0F 00000000000000000707070707070707 00000000000000000303030303030303 00000000000000000101010101010101 0000000000000000FEFEFEFEFEFEFEFE 0000000000000000FCFCFCFCFCFCFCFC 0000000000000000F8F8F8F8F8F8F8F8 0000000000000000F0F0F0F0F0F0F0F0 0000000000000000E0E0E0E0E0E0E0E0 0000000000000000C0C0C0C0C0C0C0C0 00000000000000008080808080808080 00000000000000000000000000000000 0000000000000000FFFFFFFFFFFFFF00 00000000000000007F7F7F7F7F7F7F00 00000000000000003F3F3F3F3F3F3F00 00000000000000001F1F1F1F1F1F1F00 00000000000000000F0F0F0F0F0F0F00 00000000000000000707070707070700 00000000000000000303030303030300 00000000000000000101010101010100 0000000000000000FEFEFEFEFEFEFE00 0000000000000000FCFCFCFCFCFCFC00 0000000000000000F8F8F8F8F8F8F800 0000000000000000F0F0F0F0F0F0F000 0000000000000000E0E0E0E0E0E0E000 0000000000000000C0C0C0C0C0C0C000 00000000000000008080808080808000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00071F3F3F7F7F7F0F386040C08C8E8C 00C0E0F8FCFEFEFEE0301C0602617161 00000008083C4C7F0000000000003000 00000000000408080000000000000000 00070F0F0F67F3FF00070F0F0F67F0FC 0080C0C080B8FCFC0080C0C080B87C7C 000003030F1F1F000000000000001F1F 00000000C0E0E000000000000000E0E0 00402010080003F70000000000000000 302040C080003F800000000000000000 0000000000000D0D00000000000F1212 00000000000080800000000000804060 00000000000000000000000804070301 00000000201008C0000000000000E0E0 0001070F1C3800000001070F1F3F0707 00F0F8FC1E03000000F0F8FCFEFBF8F8 7F7F7F7F3F1F0F0080808088CC67301F FEFEFCFCF8F0C00001012322C40830C0 3F030307070808100001000000000000 F0F0F0F8180808082000400000000000 7E300000000000007D33021A1F020202 FC1C0000000000007C1C00C0C0000000 1F1F0F07030000001F00000000000000 E0E0C08000000000E000000000000000 07030021634286800000000000000000 80000010080402000000000000000000 00001818000000007F7F7F1800000000 0404303000000000F8F8FC3000000000 000000000000000003072E1C18040000 0000000000000000F038080400000000 02020000000000000505070707070000 101000C0C0C00000E8E8F83838380000 00000008011141010F79C7B6BF6F1359 00000880C5808080583C92DEA2EBAEAC 0002060E1E0000000000000000000000 80A0B0B8BC8080808080808080808080 0000060F08081810000000000707070F 000000807018080C0000000080E0F0F0 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 01090101070F1800FDD58101070F1800 88808080F8FC0800B0808080F8FC0800 00000000000000003F1F070300000000 0000000000000000FEFCF8E000000000 2666400F0F0000001F1F3F7F7F7F6100 666202F0F0000000F8FCFCFEFEFE8200 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 007F7F7F787878780000000007070707 00FFFFFF03070F1F00000000FCF8F0E0 00FFFFFFC0E0F0F8000000003F1F0F07 00FEFEFE1E1E1E1E0002060EFEFEFEFE 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 787878797B7F7F7F0707070604000000 3F3FDFEFF0F0F0F0C0C020100F0F0F0F FCFAF7EF1F1F1F1F03070F1FFFFFFFFF 1E1E1E9EDEFEFEFEFEFEFEFEFEFEFEFE 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 7F7F7B79787878780000040607070707 F0F0F0EFDF7F3F1F0F0F0F1F3FBFFFFF 1F1F1FEFF7FAFCF8FFFFFFFFFFFFFFFF FEFEDE9E1E1E1E1EFEFEFEFEFEFEFEFE 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 7878787F7F7F7F000707070F1F3F7F00 0F0703FFFFFFFF00FFFFFFFFFFFFFF00 F0E0C0FFFFFFFF00FFFFFFFFFFFFFF00 1E1E1EFEFEFEFE00FEFEFEFEFEFEFE00 #15:MAIN SOUND 2800303A00FD00001800846C003A0000 280060AA00000000280060AA00000C00 2C0031DD059A00003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0040C040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 2D3F00000000000000000000323F0000 00000000000000002D3F000000000000 00000000263F00000000000000000000 2D3F00000000000000000000323F0000 00000000000000002D3F000000000000 00000000000000000000000000FF0000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000002A0F0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000002E0F0000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000