REM ADVANCED RULES REM START 100 REM MATCHES = 1, MISSES = -1 REM GOLD DIAMONDS, AND GLASSES, ARE PLACED AS PAIRS, REPLACING ONE REGULAR MATCH... REM A GOLD DIAMOND MATCH = 10 AND MAKES ALL OTHER FUTURE MATCHES ON THAT BOARD = 10 "GOLD DIAMOND MODE" CHANGE BACKGROUND COLOR ACCORDINGLY... REM MATCHING GLASSES TURNS OVER ALL CARDS BRIEFLY SO YOU CAN SEE THEM.. THEN GLASSES ARE REMOVED... (THE MATCH SCORES AS A REGULAR MATCH WOULD) REM MATCHING NET WITH SUPER SLIMER REMOVES SUPER SLIMER FROM THAT BOARD, AND TILES NO LONGER ARE SHUFFLED ON THAT REMAINING BOARD... WHEN NET IS PLACED IT REPLACES THE ODD CARD THAT SLIMER TOOK ITS PAIR ... THIS MATCH DOES NOT SCORE... REMAINING MATCHES WILL SCORE +2 REM LASER BEAM GUARANTEES A MATCH.. WHEN PAIRED WITH SLIMER, IT REMOVES SLIMER... WHEN MATCHED WITH A REGULAR TILE, ITS MATCHING TILE IS ALSO SHOWN ANS MATCHES FOR A SCORE... WHEN LASER IS PLAYED, IT REPLACES THE ODD CARD THAT SLIMER TOOK ITS PAIR... REMAININF MATCHES WILL SCORE +3 REM IN ATTACK MODE, BOTH SLIMERS ARE USED (REPLACING A MATCH) AND SCORING = +5 WITH SLIMERS, +1 WITH NO SLIMERS... MATCHING THE SLIMERS REMOVES THEM, AND TILES NO LONGER SHUFFLE ON THE REMAINING BOARD... UNTIL THEN, CARDS GET DOUBLE SHUFFLED RATHER THAN SINGLE SHUFFLED... REM EACH BOARD WILL BE ONE OF 5 MODES... GOLD, GLASSES, NET, LASER, BATTLE) REM THERE WILL ALWAYS BE 9 SCORING MATCHES PER BOARD REM THERE WILL ONLY BE ONE SPECIAL CARD PLACED PER BOARD (GOLD, GLASSES, NET, LASER) REM CHANGES... REM ADDED BETTER CONTROLS FOR SLIMER AND MATCH SCORE REM FIXED ERRORS FOUND WITH SCORING, IMPROVED CODE WITH SCORING SUB REM ADDED SUB TO CHANGE BG COLOR TO MATCH IADD CHANGE TOUCHSCREEN RANDOMIZE TIMER GLOBAL ISCORE, IADD, ISOUND 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 SPRITE 1,,,128 SPRITE 2,,,128 SPRITE 1 PAL 0 SIZE 3 SPRITE 2 PAL 0 SIZE 3 NEWGAME: ISCORE=110 ISOUND=1 CLS BG 0 PAL 5 TEXT 4,3,"SUPER MEMORY" TEXT 7,4,"BATTLE" PAL 3 TEXT 8,6,"EASY" TEXT 6,9,"ADVANCED" TEXT 8,12,"SOUND" BG 1 I=0 II=0 PAL 4 FOR Y=2 TO 13 II=(II+1) MOD 2 FOR X=2 TO 17 II=(II+1) MOD 2 IF II=0 THEN I=(I+1) MOD 2 CELL X,Y,16+16*I END IF NEXT X NEXT Y IDANCE=0 BG COPY 0,0,20,16 TO 0,0 MUSIC DO BG 1 PAL 4 IF IDANCE=0 THEN I=(I+1) MOD 2 FOR Y=2 TO 13 II=(II+1) MOD 2 FOR X=2 TO 17 II=(II+1) MOD 2 IF II=0 THEN I=(I+1) MOD 2 CELL X,Y,16+16*I END IF NEXT X NEXT Y END IF IDANCE=(IDANCE+1) MOD 64 IF TOUCH THEN Y=TOUCH.Y\8 IF Y=6 THEN CLS STOP WAIT 15 GOTO NEWBOARD ELSE IF Y=12 THEN BG 0 PAL 3 ADD ISOUND,1,0 TO 1 IF ISOUND=0 THEN TEXT 7,12,"SILENT" STOP ELSE IF ISOUND=1 THEN TEXT 7,12," SOUND" MUSIC END IF WAIT 15 END IF END IF WAIT VBL LOOP NEWBOARD: IF ISOUND=1 THEN PLAY 1,61,10 SOUND 5 PLAY 2,53,10 SOUND 5 PLAY 3,56,10 SOUND 5 END IF 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 IMATCH=0 CALL SHOWSCORE(-10) IF ISCORE<0 THEN END FOR Y=0 TO 3 FOR X=0 TO 4 BOARD(X,Y)=0 NEXT X NEXT Y SLIMER=RND(9)+1 ISLIMER=0 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 IF I=SLIMER THEN IF ISLIMER=0 THEN BOARD(PX,PY)=11 ISLIMER=1 ELSE BOARD(PX,PY)=I END IF ELSE BOARD(PX,PY)=I END IF NEXT I NEXT II CALL CHANGEIADD(3) NEWTURN: IF IMATCH=9 THEN GOTO NEWBOARD CALL SHOWSCORE(0) 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 CALL SHOWSCORE(IADD) IF IMATCH<9 THEN GOTO YESMATCH ELSE GOTO NEWTURN END IF END IF END IF END IF WAIT VBL LOOP SUB CHANGEIADD(I) IADD=I REM VALUE = RED * 16 + GREEN * 4 + BLUE IF I=1 THEN ELSE IF I=2 THEN PALETTE 0,0*16+2*4+1,,, ELSE IF I=3 THEN PALETTE 0,0*16+2*4+1,,, ELSE IF I=5 THEN PALETTE 0,0*16+2*4+1,,, ELSE IF I=10 THEN PALETTE 0,0*16+2*4+1,,, END IF END SUB SUB SHOWSCORE(I) ADD ISCORE,I,0 TO 999 BG 0 PAL 3 NUMBER 0,0,ISCORE,3 WAIT VBL END SUB NOMATCH: WAIT 15 CALL FLIPDOWN(TX,TY) CALL FLIPDOWN(TX2,TY2) WAIT 15 CALL SHOWSCORE(-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 IF ISOUND=1 THEN 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 IF ISOUND=1 THEN 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 IF ISOUND=1 THEN 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 CALL CARD(X,Y,I) WAIT VBL NEXT I PAL 0 FOR I=14 TO 1 STEP -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 AND ISOUND=1 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 IF ISOUND=1 THEN PLAY 0,60,30 SOUND 0 WAIT 120 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 003F2A1500000008003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 000000000000000000FFFFFFFFFFFFFF 0000000000000000007F7F7F7F7F7F7F 0000000000000000003F3F3F3F3F3F3F 0000000000000000001F1F1F1F1F1F1F 0000000000000000000F0F0F0F0F0F0F 00000000000000000007070707070707 00000000000000000003030303030303 00000000000000000001010101010101 000000000000000000FEFEFEFEFEFEFE 000000000000000000FCFCFCFCFCFCFC 000000000000000000F8F8F8F8F8F8F8 000000000000000000F0F0F0F0F0F0F0 000000000000000000E0E0E0E0E0E0E0 000000000000000000C0C0C0C0C0C0C0 00000000000000000080808080808080 0001200C0C2002000000120C1C020000 0000000000000000FFFFFFFFFFFFFFFF 00000000000000007F7F7F7F7F7F7F7F 00000000000000003F3F3F3F3F3F3F3F 00000000000000001F1F1F1F1F1F1F1F 00000000000000000F0F0F0F0F0F0F0F 00000000000000000707070707070707 00000000000000000303030303030303 00000000000000000101010101010101 0000000000000000FEFEFEFEFEFEFEFE 0000000000000000FCFCFCFCFCFCFCFC 0000000000000000F8F8F8F8F8F8F8F8 0000000000000000F0F0F0F0F0F0F0F0 0000000000000000E0E0E0E0E0E0E0E0 0000000000000000C0C0C0C0C0C0C0C0 00000000000000008080808080808080 00800430300440000000483038400000 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 0103060C193367CF00000103060C1830 80C0E0F0F8FCFEFF000080C06030180C 804020110B050A1D0000000103030D1E 01020488D0A050B800000080C0C0B078 001830203C7EFFE7001830203C66C399 000306043C7EFFE7000306043C66C399 55AA57A850A060A055AA50A040804080 AA55CA0502010201AA552A150A050605 51000102C4101606227118090BCFCF7F 870000601013D0C000878498E0E0E7FD 01090101070F1800FDD58101070F1800 88808080F8FC0800B0808080F8FC0800 00000000000000003F1F070300000000 0000000000000000FEFCF8E000000000 2666400F0F0000001F1F3F7F7F7F6100 666202F0F0000000F8FCFCFEFEFE8200 FF7F3F1F0F0703010000000000000000 FFFEFCF8F0E0C0800400000000000000 1D0A050B112040801E0D030301000000 B850A0D08804020178B0C0C080000000 E7FF7E3C0000000099C3663C00000000 E7FF7E3C0000000099C3663C00000000 A0608040A050AA558040A050A857AA55 01020102050A55AA0506050A15EA55AA 0007070000C102000F0F0F1F3120C183 00E0E00200010000F0F0F0F09E828101 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 #3:MAIN BG 00001410640265026402650264026502 64026502640265026402650264026502 64026502640265026402650274027502 74027502740275027402750274027502 74027502740275027402750274027502 74027502400241020000000000000002 00020002000200020002000200000000 00000000000000004A024B0250025102 00000022002200000022002200220022 00220000000000000000000000000000 5A025B02420243020000002200220022 00000022002200220022000000000000 00000000000000004C024D0252025302 00000022002200220000002200220022 00220000000000000000000000000000 5C025D02440245020000002200220022 00000022002200220022000000000000 00000000000000006202630254025502 00000022000000000022002200220000 00220022000000000000000000000000 72027302460247020000002200000000 00000000000000000000000000000000 00000000000000004E024F0256025702 00000000000000000000000000000000 00000000000000000000000000000000 5E025F02480249020000000000000000 00000000000000000000000000000000 00000000000000006A026B0258025902 00000000000000000000000000000000 00000000000000000000000000000000 7A027B02600261020000000000000000 00000000000000000000000000000000 00000000000000006C226D2270027102 00000000000000000000000000000000 00000000000000000000000000000000 7C227D22662267226E026F026E026F02 6E026F026E026F026E026F026E026F02 6E026F026E026F026822692276227722 7E027F027E027F027E027F027E027F02 7E027F027E027F027E027F027E027F02 78227922 #15:MAIN SOUND 2800303A00FD00001800846C003A0000 280060AA000000002F0061001000FE00 2C0031DD059A0000180050AA00000F00 2F0061AA1000FE000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 80404040014040400040404002404040 03404040044040400340404005404040 08C04040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 2D3FE4000000000000000000323F0000 00000000000000002D3F000000000000 00000000263F00000000000000000000 2D3F00000000000000000000323F0000 00000000000000002D6F000000000000 00000000000000000000000000000000 2D3F00000000000000000000323F0000 00000000000000002D3F000000000000 00000000323F00000000000000000000 363F0000000000000000000000000000 0000343F00000000323F00000000313F 000000002F3F000000002E3F00000000 323F000000000000000000002F3F0000 00002D3F000000000000000000002B3F 000000000000000000002A3F00000000 000000000000283F0000000000000000 0000263F000000000000000000000000 00000000000000000000000000000000 343F00000000000000000000393F0000 0000000000000000343F000000000000 000000002D3F00000000000000000000 343F00000000000000000000393F0000 0000000000000000346F000000000000 00000000000000000000000000000000 343F00000000000000000000393F0000 0000000000000000343F000000000000 00000000393F00000000000000000000 3D3F0000000000000000000000000000 00003B3F00000000393F00000000383F 00000000363F00000000353F00000000 393F00000000000000000000363F0000 0000343F00000000000000000000323F 00000000000000000000313F00000000 0000000000002F3F0000000000000000 00002D3F000000000000000000000000 00000000000000000000000000000000