PLAYMUSIC=1 CELL SIZE 1,1 RANDOMIZE TIMER TOUCHSCREEN REM WAS8BIT DIM MUS(5) FOR I=1 TO 5 READ MUS(I) NEXT I DATA 2,4,7,9,11 DIM GLOBAL CAN(60),REMOVE(8,7) GLOBAL SCORE,CHECK0,WIN,LOSE FOR I=1 TO 37 READ CAN(I) NEXT I DATA 2,4,6,8,10,12,14,32,34,36,38,40 DATA 42,44,46,64,66,68,70,72,74,76 DATA 78,96,98,100,102,104,106,108 DATA 110,128,130,132,134,136,138 REPLAY: CLS SCORE=0 WIN=0 LOSE=0 BG 1 PLAY 1,40,10 SOUND 1 WAIT 15 NEW: PAL 0 CELL 0,7,160 CELL 9,7,168 CALL REFRESH CALL PENALIZE ICALL=1 WHILE ICALL<>0 CALL CHECK(ICALL) WEND ITOUCH=0 INEW=0 IDRAW=0 DO TRACE ITOUCH IF TOUCH THEN IF ITOUCH=0 THEN BX=TOUCH.X\16 BY=TOUCH.Y\16 IF BX>0 AND BX<9 THEN TX1=TOUCH.X TY1=TOUCH.Y ITOUCH=1 ELSE IF BY=7 THEN IF BX=0 THEN INC INEW IF INEW\45>=4 THEN INEW=0 GOTO REPLAY END IF PAL 0 CELL 0,7,160+(INEW\45)*2 ELSE IF BX=9 THEN INC IDRAW IF IDRAW\45>=4 THEN IDRAW=0 GOTO NEW END IF PAL 0 CELL 9,7,168+(IDRAW\45)*2 END IF END IF END IF END IF ELSE IF ITOUCH=1 THEN TX2=TOUCH.X TY2=TOUCH.Y ITOUCH=0 SX=TX2-TX1 SY=TY2-TY1 DX=TX2\16-TX1\16 DY=TY2\16-TY1\16 CHECK0=0 CALL SWAPIT(TX1\16,TY1\16,SGN(DX),SGN(DY)) ICALL=0 IF DX<>0 OR DY<>0 THEN ICALL=1 WHILE ICALL<>0 CALL CHECK(ICALL) WEND IF CHECK0=0 THEN CALL SWAPIT(TX1\16,TY1\16,SGN(DX),SGN(DY)) ELSE IF INEW>0 OR IDRAW>0 THEN PAL 0 CELL 0,7,160 CELL 9,7,168 INEW=0 IDRAW=0 END IF END IF IF SCORE>0 THEN REM TRACE SCORE REM WAIT 10 END IF IF SCORE>0 THEN IF SCORE>100 THEN ADD WIN,100 ADD SCORE,-100 ELSE INC WIN DEC SCORE END IF CALL SHOWIT END IF IF PLAYMUSIC=1 AND RND(100)=0 THEN PLAY 2,12*(RND(1)+3)+MUS(RND(4)+1),1 SOUND 2 END IF WAIT VBL LOOP SUB SHOWIT IF LOSE>1160 THEN CLS PAL 0 BG 0 TEXT 4,4," GAME OVER" TEXT 4,6,"TOTAL SCORE" NUMBER 6,8,WIN,7 OLDWIN=PEEKL($E000) TEXT 4,10,"HIGH SCORE" NUMBER 6,12,OLDWIN,7 IF WIN>OLDWIN THEN POKEL $E000,WIN WAIT 60 WHILE NOT TOUCH WAIT VBL WEND GOTO REPLAY END IF BG 0 PAL 4 Y=0 X=0 W=WIN\100 WHILE W>0 IF W>8 THEN CELL X,Y,200 ADD W,-8 INC Y IF Y>13 THEN IF X=0 THEN X=1 ELSE IF X=1 THEN X=18 ELSE IF X=18 THEN X=19 Y=0 END IF ELSE CELL X,Y,192+W W=0 END IF WEND PAL 1 Y=0 L=LOSE\10 WHILE L>0 IF L>8 THEN CELL 19,Y,200 ADD L,-8 INC Y ELSE CELL 19,Y,192+L L=0 END IF WEND BG 1 END SUB SUB SWAPIT(X1,Y1,DX,DY) IF X1+DX>=1 AND Y1+DY>=0 AND X1+DX<=8 AND Y1+DY<=7 THEN X2=X1+DX Y2=Y1+DY P1=CELL.A(X1,Y1) P2=CELL.A(X2,Y2) SX1=X1*16 SY1=Y1*16 SX2=X2*16 SY2=Y2*16 SPRITE 1,SX1,SY1,2 SPRITE 1 SIZE 1 PAL P1 CELL X1,Y1,0 SPRITE 2,SX2,SY2,2 SPRITE 2 SIZE 1 PAL P2 CELL X2,Y2,0 FOR I=1 TO 15 SPRITE 1,SX1+DX*I,SY1+DY*I, SPRITE 2,SX2-DX*I,SY2-DY*I, WAIT VBL NEXT I SPRITE OFF PAL P1 CELL X2,Y2,2 PAL P2 CELL X1,Y1,2 END IF END SUB SUB CHECK(R) D=R R=0 FOR Y=0 TO 7 FOR X=1 TO 8 REMOVE(X,Y)=0 NEXT X NEXT Y 'CHECK X FOR Y=0 TO 7 FOR X=1 TO 6 C1=CELL.A(X,Y) C2=CELL.A(X+1,Y) C3=CELL.A(X+2,Y) IF C1=C2 AND C2=C3 THEN REMOVE(X,Y)=1 REMOVE(X+1,Y)=1 REMOVE(X+2,Y)=1 R=1 PLAY 0,70+C1,1 SOUND 0 WAIT 6 END IF NEXT X NEXT Y 'CHECK Y FOR Y=0 TO 5 FOR X=1 TO 8 C1=CELL.A(X,Y) C2=CELL.A(X,Y+1) C3=CELL.A(X,Y+2) IF C1=C2 AND C2=C3 THEN REMOVE(X,Y)=1 REMOVE(X,Y+1)=1 REMOVE(X,Y+2)=1 R=1 PLAY 0,70+C1,1 SOUND 0 WAIT 6 END IF NEXT X NEXT Y IF R=1 THEN CALL FLIPIT(D) CALL REPLACE END IF IF R>0 THEN CHECK0=1 END SUB SUB PENALIZE FOR Y=0 TO 7 FOR X=1 TO 8 ADD LOSE,CELL.A(X,Y) NEXT X NEXT Y END SUB SUB REFRESH FOR Y=0 TO 7 FOR X=1 TO 8 PAL CELL.A(X,Y) CELL X,Y,2 REMOVE(X,Y)=2 NEXT X NEXT Y CALL REPLACE END SUB SUB REPLACE FOR A=25 TO 31 FOR Y=0 TO 7 FOR X=1 TO 8 IF REMOVE(X,Y)>0 THEN P=CELL.A(X,Y) IF REMOVE(X,Y)=1 THEN ADD SCORE,P IF A=31 THEN PAL RND(6)+1 ELSE PAL P CELL X,Y,CAN(A) END IF NEXT X NEXT Y WAIT 3 IF A=31 THEN WAIT 6 NEXT A FOR A=32 TO 37 FOR Y=0 TO 7 FOR X=1 TO 8 IF REMOVE(X,Y)>0 THEN PAL CELL.A(X,Y) CELL X,Y,CAN(A) END IF NEXT X NEXT Y WAIT 3 NEXT A FOR Y=0 TO 7 FOR X=1 TO 8 REMOVE(X,Y)=0 NEXT X NEXT Y END SUB SUB FLIPIT(T) IF ABS(T)=1 THEN IF T=1 THEN A1=1 A2=13 SS=1 ELSE A1=13 A2=1 SS=-1 END IF IREP=2 ELSE IF ABS(T)=2 THEN IF T=2 THEN A1=13 A2=25 SS=1 ELSE A1=25 A2=13 SS=-1 END IF IREP=2 END IF FOR REP=1 TO IREP FOR A=A1 TO A2 STEP SS FOR Y=0 TO 7 FOR X=1 TO 8 P=CELL.A(X,Y) IF REMOVE(X,Y)=1 THEN PAL P CELL X,Y,CAN(A) END IF NEXT X NEXT Y WAIT 2 NEXT A NEXT REP END SUB #1:MAIN PALETTES 003F2A15003B302000382410003C2814 002E0C08000F0A05000B060200332211 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 00071820204043430000071F1F3F3F3F 00E018040402C2C20000E0F8F8FCFCFC 00030C10102021230000030F0F1F1F1F 00C03008080080C00000C0F0F0FCFCFC 000106080810111100000107070F0F0F 0080600000008080000080F0F0F8F8F8 00010204040808090000010303070707 0080402020109090000080E0E0F0F0F0 00010102020404040000000101030303 0080804040202020000000C0C0E0E0E0 00010101010202020000000000010101 00808080804040400000008080C0C0C0 00010101010101010000000000000000 00808080808080800000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 43434020201807003F3F3F1F1F070000 C2C202040418E000FCFCFCF8F8E00000 23212010100C03001F1F1F0F0F030000 C08000080830C000FCFCFCF0F0C00000 11111008080601000F0F0F0707010000 8080000000608000F8F8F8F0F0800000 08080804040201000707070303010000 9010102020408000F0F0F0E0E0800000 04040402020101000303030101000000 2020204040808000E0E0E0C0C0000000 02020201010101000101010000000000 4040408080808000C0C0C08080000000 01010101010101000000000000000000 80808080808080000000000000000000 00010101010202020000000101030303 00808080804040400000000000808080 00010102020404040000000303070707 00808040402020200000008080C0C0C0 000102040408090900000107070F0F0F 0080402020101090000080C0C0E0E0E0 00010600000001010000010F0F1F1F1F 0080601010088888000080E0E0F0F0F0 00030C10100001030000030F0F3F3F3F 00C03008080484C40000C0F0F0F8F8F8 00071820204043430000071F1F3F3F3F 00E018040402C2C20000E0F8F8FCFCFC 0000071820204143000000071F1F3F3F 0000E018040482C2000000E0F8F8FCFC 000000071820204300000000071F1F3F 000000E0180404C200000000E0F8F8FC 02020201010101000303030101000000 40404080808080008080800000000000 04040402020101000707070303000000 2020204040808000C0C0C08080000000 09080804040201000F0F0F0707010000 1010102020408000E0E0E0C0C0800000 01010000000601001F1F1F0F0F010000 8888081010608000F0F0F0E0E0800000 03010010100C03003F3F3F0F0F030000 C48404080830C000F8F8F8F0F0C00000 43434020201807003F3F3F1F1F070000 C2C202040418E000FCFCFCF8F8E00000 43412020180000003F3F1F1F07070000 C282040418000000FCFCF8F8E0E00000 43202000000000003F1F1F1F07000000 C204040000000000FCF8F8F8E0000000 00000000071820400000000000071F3F 00000000E01804820000000000E0F8FC 0000000000071860000000000000071F 0000000000E01806000000000000E0F8 00000000000007780000000000000007 000000000000E01E00000000000000E0 000000000000007F0000000000000000 00000000000000FE0000000000000000 0000000000000778000000000000071F 000000000000E01E000000000000E0F8 00000000000718600000000000071F1F 0000000000E018060000000000E0F8F8 000000000718204100000000071F1F3F 00000000E01804C200000000E0F8F8FC 0000000000202043000000071F1F1F3F 00000000000404C2000000E0F8F8F8FC 41201807000000003F1F1F0700000000 C20418E000000000FCF8F8E000000000 60180700000000001F1F070000000000 0618E00000000000F8F8E00000000000 78070000000000001F07000000000000 1EE0000000000000F8E0000000000000 7F000000000000000000000000000000 FE000000000000000000000000000000 78070000000000000700000000000000 1EE0000000000000E000000000000000 60180700000000001F07000000000000 0618E00000000000F8E0000000000000 40201807000000003F1F070000000000 820418E000000000FCF8E00000000000 43202018070000003F1F1F0700000000 C2040418E0000000FCF8F8E000000000 0000001820204143000007071F1F3F3F 00000018040482C20000E0E0F8F8FCFC 00071820204043430000071F1F3F3F3F 00E018040402C2C20000E0F8F8FCFCFC 0000071810202123000000070F1F1F1F 0000E018080484C4000000E0F0F8F8F8 000000070810101100000000070F0F0F 000000E01008088800000000E0F0F0F0 00000000030408080000000000030707 00000000C02010100000000000C0E0E0 00000000000304040000000000000303 0000000000C02020000000000000C0C0 00000000000001020000000000000001 00000000000080400000000000000080 00000000000000010000000000000000 00000000000000800000000000000000 43412020180700003F3F1F1F07000000 C282040418E00000FCFCF8F8E0000000 43434020201807003F3F3F1F1F070000 C2C202040418E000FCFCFCF8F8E00000 23212010180700001F1F1F0F07000000 C484040818E00000F8F8F8F0E0000000 11101008070000000F0F0F0700000000 88080810E0000000F0F0F0E000000000 08080403000000000707030000000000 101020C000000000E0E0C00000000000 04040300000000000303000000000000 2020C00000000000C0C0000000000000 02010000000000000100000000000000 40800000000000008000000000000000 01000000000000000000000000000000 80000000000000000000000000000000 00000000000001020000000000000001 00000000000080400000000000000080 00000000000304040000000000000303 0000000000C02020000000000000C0C0 00000000030408080000000000030707 00000000C02010100000000000C0E0E0 000000070810101100000000070F0F0F 000000E01008088800000000E0F0F0F0 0000071810202123000000070F1F1F1F 0000E018080484C4000000E0F0F8F8F8 00071820204043430000071F1F3F3F3F 00E018040402C2C20000E0F8F8FCFCFC 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 02010000000000000100000000000000 40800000000000008000000000000000 04040300000000000303000000000000 2020C00000000000C0C0000000000000 08080403000000000707030000000000 101020C000000000E0E0C00000000000 11101008070000000F0F0F0700000000 88080810E0000000F0F0F0E000000000 23212010180700001F1F1F0F07000000 C484040818E00000F8F8F8F0E0000000 43434020201807003F3F3F1F1F070000 C2C202040418E000FCFCFCF8F8E00000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000040402010007182020404040 000000002020408000E0180404020202 00000000040402010007182020404040 000000002020408000E0180404020202 0000000004040201000718202040787C 000000002020408000E0180404021E3E 000000000404020100071F3B3171787C 000000002020408000E0F8DC8C8E1E3E 000000000102041F0007182020404040 00000000C020101000E0180404020202 000000000102041F0007182020404040 00000000C020101000E0180404020202 000000000102041F0007182020406140 00000000C020101000E018040402C646 000000000102041F00071F3E3C786140 00000000C020101000E0F83C1C0EC646 01020404000000004040402020180700 8040202000000000020202040418E000 0102040400000000404071313B1F0700 804020200000000002028E8CDCF8E000 01020404000000007C7871313B1F0700 80402020000000003E1E8E8CDCF8E000 01020404000000007C7871313B1F0700 80402020000000003E1E8E8CDCF8E000 0E040003000000004040402020180700 101020C000000000020202040418E000 0E04000300000000404078383C1F0700 101020C00000000002020E1C3CF8E000 0E0400030000000060717A383C1F0700 101020C000000000C6C60E1C3CF8E000 0E0400030000000060717A383C1F0700 101020C000000000C6C60E1C3CF8E000 00000000000000000000000000000000 0000000000000000FF00000000000000 0000000000000000FFFF000000000000 0000000000000000FFFFFF0000000000 0000000000000000FFFFFFFF00000000 0000000000000000FFFFFFFFFF000000 0000000000000000FFFFFFFFFFFF0000 0000000000000000FFFFFFFFFFFFFF00 0000000000000000FFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFBB292829BBFF00FF8301000183FF00 FFB3111011BBFF00FF8301000183FF00 FFBB093821BBFF00FF8301000183FF00 FFBB093809BBFF00FF8301000183FF00 FFAB2938098BFF00FF8301000183FF00 FFBB213809BBFF00FF8301000183FF00 FFBB213829BBFF00FF8301000183FF00 FFBB0908098BFF00FF8301000183FF00 FFBB293829BBFF00FF8301000183FF00 FFBB293809BBFF00FF8301000183FF00 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFBB293829ABFF00FF8301000183FF00 FFB3293029B3FF00FF8301000183FF00 FF9329202993FF00FF8301000183FF00 FFB3292829B3FF00FF8301000183FF00 FFBB213021BBFF00FF8301000183FF00 FFBB213021A3FF00FF8301000183FF00 FF9B21382993FF00FF8301000183FF00 FFAB293829ABFF00FF8301000183FF00 FFBB111011BBFF00FF8301000183FF00 FFBB09082993FF00FF8301000183FF00 FFAB293029ABFF00FF8301000183FF00 FFA3212021BBFF00FF8301000183FF00 FFBB392829ABFF00FF8301000183FF00 FFAB393839ABFF00FF8301000183FF00 FFBB292829BBFF00FF8301000183FF00 FFBB293821A3FF00FF8301000183FF00 FF932928399BFF00FF8301000183FF00 FFB3293029ABFF00FF8301000183FF00 FF9B211809B3FF00FF8301000183FF00 FFBB11101193FF00FF8301000183FF00 FFAB292829BBFF00FF8301000183FF00 FFAB29282993FF00FF8301000183FF00 FFAB293839BBFF00FF8301000183FF00 FFAB291029ABFF00FF8301000183FF00 FFAB29101193FF00FF8301000183FF00 FFBB091021BBFF00FF8301000183FF00 #15:MAIN SOUND 1800009900000000180081AA00FD0000 1800F1DD005B0F002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000