RANDOMIZE TIMER FONT 64 GAMEPAD 1 BG COPY 0,0,20,16 TO 0,0 PACX=10*8 PACY=1*8 PACANILR=5 PACANIUD=21 PACPOINT=0 PACMOVEC=0 PACMOVEU=0 PACMOVED=0 PACMOVEL=0 PACMOVER=0 BLINKYX=1*8 BLINKYY=1*8 BLINKYSTARTX=1*8 BLINKYSTARTY=1*8 BLINKYU=0 BLINKYD=0 BLINKYL=0 BLINKYR=0 BLINKYLASTDIR=0 BLINKYSPEED=0.5 GLOBAL BLINKYCHECKR,BLINKYCHECKL,BLINKYCHECKU,BLINKYCHECKD PINKYX=18*8 PINKYY=1*8 PINKYU=0 PINKYD=0 PINKYL=0 PINKYR=0 PINKYLASTDIR=0 PINKYSPEED=0.5 GLOBAL PINKYCHECKR,PINKYCHECKL,PINKYCHECKU,PINKYCHECKD INKYX=18*8 INKYY=13*8 INKYU=0 INKYD=0 INKYL=0 INKYR=0 INKYLASTDIR=0 INKYSPEED=0.25 GLOBAL INKYCHECKR,INKYCHECKL,INKYCHECKU,INKYCHECKD CLYDEX=1*8 CLYDEY=13*8 CLYDEU=0 CLYDED=0 CLYDEL=0 CLYDER=0 CLYDELASTDIR=0 CLYDESPEED=0.25 GLOBAL CLYDECHECKR,CLYDECHECKL,CLYDECHECKU,CLYDECHECKD SPRITE.A 0,(7,0,0,0,0) SPRITE 0,PACX,PACY,PACANILR SPRITE.A 10,(5,0,0,0,0) SPRITE 10,BLINKYX,BLINKYY,48 SPRITE.A 11,(6,0,0,0,0) SPRITE 11,PINKYX,PINKYY,48 SPRITE.A 12,(4,0,0,0,0) SPRITE 12,INKYX,INKYY,48 SPRITE.A 13,(2,0,0,0,0) SPRITE 13,CLYDEX,CLYDEY,48 NUMBER 0,15,PACPOINT,4 DO REM IF BUTTON(0,0) THEN REM GOSUB BACK REM END IF GOSUB CHECKPACDIR GOSUB CHECKPACCOLL GOSUB CHECKPACEATPILL CALL CHECKBLINKYCOLL(BLINKYX,BLINKYY) CALL CHECKPINKYCOLL(PINKYX,PINKYY) CALL CHECKINKYCOLL(INKYX,INKYY) CALL CHECKCLYDECOLL(CLYDEX,CLYDEY) IF PACCHECKPILL THEN CELL (PACX+4)\8,(PACY+4)\8,0 PACPOINT=PACPOINT+1 NUMBER 0,15,PACPOINT,4 END IF IF PACR AND PACCHECKR AND PACMOVER=0 THEN PACMOVER=1 END IF IF PACMOVER=1 THEN PACX=PACX+1 PACANILR=PACANILR+1 IF PACANILR=9 THEN PACANILR=1 SPRITE.A 0,(7,0,0,0,0) SPRITE 0,PACX,PACY,PACANILR IF PACX\8=PACX/8 THEN PACMOVER=0 END IF IF PACL AND PACCHECKL AND PACMOVEL=0 THEN PACMOVEL=1 END IF IF PACMOVEL=1 THEN PACX=PACX-1 PACANILR=PACANILR+1 IF PACANILR=9 THEN PACANILR=1 SPRITE.A 0,(7,1,0,0,0) SPRITE 0,PACX,PACY,PACANILR IF PACX\8=PACX/8 THEN PACMOVEL=0 END IF IF PACD AND PACCHECKD AND PACMOVED=0 THEN PACMOVED=1 END IF IF PACMOVED=1 THEN PACY=PACY+1 PACANIUD=PACANIUD+1 IF PACANIUD=25 THEN PACANIUD=17 SPRITE.A 0,(7,1,1,0,0) SPRITE 0,PACX,PACY,PACANIUD IF PACY\8=PACY/8 THEN PACMOVED=0 END IF IF PACU AND PACCHECKU AND PACMOVEU=0 THEN PACMOVEU=1 END IF IF PACMOVEU=1 THEN PACY=PACY-1 PACANIUD=PACANIUD+1 IF PACANIUD=25 THEN PACANIUD=17 SPRITE.A 0,(7,1,0,0,0) SPRITE 0,PACX,PACY,PACANIUD IF PACY\8=PACY/8 THEN PACMOVEU=0 END IF IF BLINKYR=0 AND BLINKYL=0 AND BLINKYU=0 AND BLINKYD=0 THEN ENDREPEAT=0 REPEAT BLINKYRNDMOVE=INT(RND*4)+1 IF BLINKYCHECKR AND BLINKYRNDMOVE=1 AND NOT BLINKYLASTDIR=2 THEN BLINKYR=1 ENDREPEAT=1 BLINKYLASTDIR=1 END IF IF BLINKYCHECKL AND BLINKYRNDMOVE=2 AND NOT BLINKYLASTDIR=1 THEN BLINKYL=1 ENDREPEAT=1 BLINKYLASTDIR=2 END IF IF BLINKYCHECKU AND BLINKYRNDMOVE=3 AND NOT BLINKYLASTDIR=4 THEN BLINKYU=1 ENDREPEAT=1 BLINKYLASTDIR=3 END IF IF BLINKYCHECKD AND BLINKYRNDMOVE=4 AND NOT BLINKYLASTDIR=3 THEN BLINKYD=1 ENDREPEAT=1 BLINKYLASTDIR=4 END IF UNTIL ENDREPEAT=1 END IF IF BLINKYR=1 THEN BLINKYX=BLINKYX+BLINKYSPEED IF BLINKYX\8=BLINKYX/8 THEN BLINKYR=0 END IF IF BLINKYL=1 THEN BLINKYX=BLINKYX-BLINKYSPEED IF BLINKYX\8=BLINKYX/8 THEN BLINKYL=0 END IF IF BLINKYU=1 THEN BLINKYY=BLINKYY-BLINKYSPEED IF BLINKYY\8=BLINKYY/8 THEN BLINKYU=0 END IF IF BLINKYD=1 THEN BLINKYY=BLINKYY+BLINKYSPEED IF BLINKYY\8=BLINKYY/8 THEN BLINKYD=0 END IF SPRITE 10,BLINKYX,BLINKYY,48 IF PINKYR=0 AND PINKYL=0 AND PINKYU=0 AND PINKYD=0 THEN ENDREPEAT=0 REPEAT PINKYRNDMOVE=INT(RND*4)+1 IF PINKYCHECKR AND PINKYRNDMOVE=1 AND NOT PINKYLASTDIR=2 THEN PINKYR=1 ENDREPEAT=1 PINKYLASTDIR=1 END IF IF PINKYCHECKL AND PINKYRNDMOVE=2 AND NOT PINKYLASTDIR=1 THEN PINKYL=1 ENDREPEAT=1 PINKYLASTDIR=2 END IF IF PINKYCHECKU AND PINKYRNDMOVE=3 AND NOT PINKYLASTDIR=4 THEN PINKYU=1 ENDREPEAT=1 PINKYLASTDIR=3 END IF IF PINKYCHECKD AND PINKYRNDMOVE=4 AND NOT PINKYLASTDIR=3 THEN PINKYD=1 ENDREPEAT=1 PINKYLASTDIR=4 END IF UNTIL ENDREPEAT=1 END IF IF PINKYR=1 THEN PINKYX=PINKYX+PINKYSPEED IF PINKYX\8=PINKYX/8 THEN PINKYR=0 END IF IF PINKYL=1 THEN PINKYX=PINKYX-PINKYSPEED IF PINKYX\8=PINKYX/8 THEN PINKYL=0 END IF IF PINKYU=1 THEN PINKYY=PINKYY-PINKYSPEED IF PINKYY\8=PINKYY/8 THEN PINKYU=0 END IF IF PINKYD=1 THEN PINKYY=PINKYY+PINKYSPEED IF PINKYY\8=PINKYY/8 THEN PINKYD=0 END IF SPRITE 11,PINKYX,PINKYY,48 IF INKYR=0 AND INKYL=0 AND INKYU=0 AND INKYD=0 THEN ENDREPEAT=0 REPEAT INKYRNDMOVE=INT(RND*4)+1 IF INKYCHECKR AND INKYRNDMOVE=1 AND NOT INKYLASTDIR=2 THEN INKYR=1 ENDREPEAT=1 INKYLASTDIR=1 END IF IF INKYCHECKL AND INKYRNDMOVE=2 AND NOT INKYLASTDIR=1 THEN INKYL=1 ENDREPEAT=1 INKYLASTDIR=2 END IF IF INKYCHECKU AND INKYRNDMOVE=3 AND NOT INKYLASTDIR=4 THEN INKYU=1 ENDREPEAT=1 INKYLASTDIR=3 END IF IF INKYCHECKD AND INKYRNDMOVE=4 AND NOT INKYLASTDIR=3 THEN INKYD=1 ENDREPEAT=1 INKYLASTDIR=4 END IF UNTIL ENDREPEAT=1 END IF IF INKYR=1 THEN INKYX=INKYX+INKYSPEED IF INKYX\8=INKYX/8 THEN INKYR=0 END IF IF INKYL=1 THEN INKYX=INKYX-INKYSPEED IF INKYX\8=INKYX/8 THEN INKYL=0 END IF IF INKYU=1 THEN INKYY=INKYY-INKYSPEED IF INKYY\8=INKYY/8 THEN INKYU=0 END IF IF INKYD=1 THEN INKYY=INKYY+INKYSPEED IF INKYY\8=INKYY/8 THEN INKYD=0 END IF SPRITE 12,INKYX,INKYY,48 IF CLYDER=0 AND CLYDEL=0 AND CLYDEU=0 AND CLYDED=0 THEN ENDREPEAT=0 REPEAT CLYDERNDMOVE=INT(RND*4)+1 IF CLYDECHECKR AND CLYDERNDMOVE=1 AND NOT CLYDELASTDIR=2 THEN CLYDER=1 ENDREPEAT=1 CLYDELASTDIR=1 END IF IF CLYDECHECKL AND CLYDERNDMOVE=2 AND NOT CLYDELASTDIR=1 THEN CLYDEL=1 ENDREPEAT=1 CLYDELASTDIR=2 END IF IF CLYDECHECKU AND CLYDERNDMOVE=3 AND NOT CLYDELASTDIR=4 THEN CLYDEU=1 ENDREPEAT=1 CLYDELASTDIR=3 END IF IF CLYDECHECKD AND CLYDERNDMOVE=4 AND NOT CLYDELASTDIR=3 THEN CLYDED=1 ENDREPEAT=1 CLYDELASTDIR=4 END IF UNTIL ENDREPEAT=1 END IF IF CLYDER=1 THEN CLYDEX=CLYDEX+CLYDESPEED IF CLYDEX\8=CLYDEX/8 THEN CLYDER=0 END IF IF CLYDEL=1 THEN CLYDEX=CLYDEX-CLYDESPEED IF CLYDEX\8=CLYDEX/8 THEN CLYDEL=0 END IF IF CLYDEU=1 THEN CLYDEY=CLYDEY-CLYDESPEED IF CLYDEY\8=CLYDEY/8 THEN CLYDEU=0 END IF IF CLYDED=1 THEN CLYDEY=CLYDEY+CLYDESPEED IF CLYDEY\8=CLYDEY/8 THEN CLYDED=0 END IF SPRITE 13,CLYDEX,CLYDEY,48 IF SPRITE HIT (0,10 TO 13) THEN GOSUB LOSE WAIT VBL LOOP CHECKPACCOLL: CR=CELL.C((PACX+8)/8,(PACY+4)/8) CL=CELL.C((PACX-1)/8,(PACY+4)/8) CD=CELL.C((PACX+4)/8,(PACY+8)/8) CU=CELL.C((PACX+4)/8,(PACY-1)/8) PACCHECKR=CR=0 OR CR=15 PACCHECKL=CL=0 OR CL=15 PACCHECKD=CD=0 OR CD=15 PACCHECKU=CU=0 OR CU=15 RETURN CHECKPACEATPILL: PACCHECKPILL=CELL.C((PACX+4)\8,(PACY+4)\8)=15 RETURN CHECKPACDIR: PACR=RIGHT(0) AND NOT LEFT(0) AND NOT UP(0) AND NOT DOWN(0) PACL=LEFT(0) AND NOT RIGHT(0) AND NOT UP(0) AND NOT DOWN(0) PACU=UP(0) AND NOT LEFT(0) AND NOT RIGHT(0) AND NOT DOWN(0) PACD=DOWN(0) AND NOT LEFT(0) AND NOT UP(0) AND NOT RIGHT(0) RETURN SUB CHECKBLINKYCOLL(X,Y) CR=CELL.C((X+8)/8,(Y+4)/8) CL=CELL.C((X-1)/8,(Y+4)/8) CD=CELL.C((X+4)/8,(Y+8)/8) CU=CELL.C((X+4)/8,(Y-1)/8) BLINKYCHECKR=CR=0 OR CR=15 BLINKYCHECKL=CL=0 OR CL=15 BLINKYCHECKD=CD=0 OR CD=15 BLINKYCHECKU=CU=0 OR CU=15 END SUB SUB CHECKPINKYCOLL(X,Y) CR=CELL.C((X+8)/8,(Y+4)/8) CL=CELL.C((X-1)/8,(Y+4)/8) CD=CELL.C((X+4)/8,(Y+8)/8) CU=CELL.C((X+4)/8,(Y-1)/8) PINKYCHECKR=CR=0 OR CR=15 PINKYCHECKL=CL=0 OR CL=15 PINKYCHECKD=CD=0 OR CD=15 PINKYCHECKU=CU=0 OR CU=15 END SUB SUB CHECKINKYCOLL(X,Y) CR=CELL.C((X+8)/8,(Y+4)/8) CL=CELL.C((X-1)/8,(Y+4)/8) CD=CELL.C((X+4)/8,(Y+8)/8) CU=CELL.C((X+4)/8,(Y-1)/8) INKYCHECKR=CR=0 OR CR=15 INKYCHECKL=CL=0 OR CL=15 INKYCHECKD=CD=0 OR CD=15 INKYCHECKU=CU=0 OR CU=15 END SUB SUB CHECKCLYDECOLL(X,Y) CR=CELL.C((X+8)/8,(Y+4)/8) CL=CELL.C((X-1)/8,(Y+4)/8) CD=CELL.C((X+4)/8,(Y+8)/8) CU=CELL.C((X+4)/8,(Y-1)/8) CLYDECHECKR=CR=0 OR CR=15 CLYDECHECKL=CL=0 OR CL=15 CLYDECHECKD=CD=0 OR CD=15 CLYDECHECKU=CU=0 OR CU=15 END SUB LOSE: SPRITE.A 0,(7,0,0,0,0) FOR I=33 TO 40 SPRITE 0,PACX,PACY,I WAIT 10 NEXT I END RETURN BACK: BACKXDIV=BLINKYSTARTX-BLINKYX BACKYDIV=BLINKYSTARTY-BLINKYY STEPX=BACKXDIV/SQR(BACKXDIV*BACKXDIV+BACKYDIV*BACKYDIV) STEPY=BACKYDIV/SQR(BACKXDIV*BACKXDIV+BACKYDIV*BACKYDIV) REPEAT BLINKYX=BLINKYX+STEPX BLINKYY=BLINKYY+STEPY SPRITE 10,BLINKYX,BLINKYY,52 WAIT 2 UNTIL INT(BLINKYX)=BLINKYSTARTX AND INT(BLINKYY)=BLINKYSTARTY BLINKYU=0 BLINKYD=0 BLINKYL=0 BLINKYR=0 RETURN #1:MAIN PALETTES 003F2F000003070B003C3800003C3810 003F0B15003F3015003F3715003C2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 3C4EDCF8F0F87C3E0000000000000000 3C4EDFFCF0FC7F3C0000000000000000 3C4EDFFEF8FE7F3C0000000000000000 3C4EDFFFFCFF7E3C0000000000000000 3C4EDFFFFFFF7E3C0000000000000000 3C4EDFFFFCFF7E3C0000000000000000 3C4EDFFEF8FE7F3C0000000000000000 3C4EDFFCF0FC7F3C0000000000000000 00000000000000000000000000000000 00FF00FFFF00FF000000FFFFFFFF0000 5A5A5A5A5A5A5A5A3C3C3C3C3C3C3C3C 3C5A5A5A5A5A5A5A003C3C3C3C3C3C3C 003F405F5F58595A00003F3F3F3F3E3C 00000000000000000000000000000000 00000008180000000000001000000000 00000000000000000000000000000000 0041E3F7BF9F7E3C0000000000000000 2262F7F7BF9F7E3C0000000000000000 2276F7FFBF9F7E3C0000000000000000 3476FFFFBF9F7E3C0000000000000000 3C7EFFFFBF9F7E3C0000000000000000 3476FFFFBF9F7E3C0000000000000000 2276F7FFBF9F7E3C0000000000000000 2262F7F7BF9F7E3C0000000000000000 00000000000000000000000000000000 00FE01FFFF01FE000000FEFEFEFE0000 5A9918FFFF00FF003C7EFFFFFFFF0000 5A9A1AFAFA1A9A5A3C7CFCFCFCFC7C3C 000000FFFF0000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3C4EDFFFFFFF7E3C0000000000000000 0042E7E7FFFF7E3C0000000000000000 00008181C3E77E3C0000000000000000 0000000081C37E3C0000000000000000 0000000000007E3C0000000000000000 000000000000007E0000000000000000 00000000000000180000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00006666000000003C7EFFDDFFFFFFA5 00006666000000003C7EDDFFFFFFFF99 00006666000000003C7EBBFFFFFFFF99 00006666000000003C7EFFBBFFFFFF99 0000666600000000007EE7A37E000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00181818180018000000000000000000 006C6C24000000000000000000000000 00247E24247E24000000000000000000 00083E380E3E08000000000000000000 00626408102646000000000000000000 001C34386E643A000000000000000000 00181830000000000000000000000000 000C183030180C000000000000000000 0030180C0C1830000000000000000000 000024187E1824000000000000000000 000018187E1818000000000000000000 00000000181830000000000000000000 000000007E0000000000000000000000 00000000001818000000000000000000 00060C18306040000000000000000000 007E42424646467E0000000000000000 00080808181818180000000000000000 007E42027E60607E0000000000000000 007C44041E42427E0000000000000000 007C44447E0C0C0C0000000000000000 007E407E0646467E0000000000000000 007E46407E46467E0000000000000000 007E0202060606060000000000000000 003C247C4646467E0000000000000000 007E427E060606060000000000000000 00000018001800000000000000000000 00000018001830000000000000000000 00000C1830180C000000000000000000 0000007E007E00000000000000000000 000030180C1830000000000000000000 003C660C180018000000000000000000 003C666E6E603C000000000000000000 001E123F313131310000000000000000 003E223F3131313F0000000000000000 003F21303030313F0000000000000000 003F21313131313F0000000000000000 003F203F3030303F0000000000000000 003F203F303030300000000000000000 003F21303331313F0000000000000000 0021213F313131310000000000000000 0008080C0C0C0C0C0000000000000000 000202030303233F0000000000000000 0022223F313131310000000000000000 002020303030303F0000000000000000 003F2535353535350000000000000000 003F2131313131310000000000000000 003F23232121213F0000000000000000 003F213F303030300000000000000000 003F212121212F3F0000000000000000 003E223F313131310000000000000000 003F21203F03233F0000000000000000 007F08080C0C0C0C0000000000000000 002121313131313F0000000000000000 003131313113121E0000000000000000 002525353535353F0000000000000000 0021211E313131310000000000000000 0021213F0C0C0C0C0000000000000000 003F21013F30313F0000000000000000 003C303030303C000000000000000000 006030180C0602000000000000000000 003C0C0C0C0C3C000000000000000000 00183C66000000000000000000000000 0000000000007E000000000000000000 #3:MAIN BG 000014100D010A010A010A010A010A01 0A010A010A010A010A010A010A010A01 0A010A010A010A010A010D090B090F0B 0F0B0F0B0F0B0F0B0F0B0F0B0F030F0B 0F0B0F030F0B0F0B0F0B0F0B0F0B0F0B 0F0B0B090B090F0B1A090A090A090A09 0A090D090F0B1A091A010F0B0D010A09 0A090A090A091A010F0B0B090B090F0B 0F0B0F0B0F0B0F0B0F0B0B010F0B0F0B 0F0B0F0B0B010F0B0F0B0F0B0F0B0F0B 0F0B0B090B090F0B0D010A010A011A01 0F0B0D110A110A110A110A110D190F0B 1A090A010A010D090F0B0B090B090F0B 0C110F0B0F0B0F0B0F030F0B0F0B0F0B 0F0B0F0B0F0B0F030F0B0F0B0F0B0C11 0F0B0B090B090F0B0F0B0F031A090A09 0A090D090F031A091A010F030D010A09 0A091A010F030F0B0F0B0B090B090F0B 0C010F0B0F0B0F0B0F030B010F0B0F0B 0F0B0F0B0B010F030F0B0F0B0F0B0C01 0F0B0B090B090F0B0D110A010A011A01 0F0B0D110A010A010A010A010D190F0B 1A090A010A010D190F0B0B010B090F0B 0F0B0F0B0F0B0F0B0F030D010A090A09 0A090A090D090F030F0B0F0B0F030F0B 0F0B0B011C090A090A090A090A091A01 0F1B0D110A190A190A190A190D190F03 1A090A010A010A010A011C010B090F0B 0F030F030F030F030F030F030F030F03 0F030F030F030F030F030F030F030F0B 0F0B0B010B090F031A090A010A010A01 0A010A010A010A010A010A010A010A01 0A010A010A011A010F0B0B010B090F0B 0F0B0F0B0F0B0F0B0F0B0F0B0F0B0F0B 0F0B0F0B0F0B0F0B0F0B0F0B0F0B0F0B 0F0B0B010D110A010A010A010A010A01 0A010A010A010A010A010A010A010A01 0A010A010A010A010A010D1900190019 00190019001900190019001900190019 00190019001900190019001900190019 00190019