' KEY2 BY CCLX33 DIM MAP(45,40) global dirp GAMEPAD 1 ' #HFW5LKG REM CONST WALL=1 LADDER=2 FIRE=3 WATER=4 WATER5=5 LOCK=6 KEY1=7 GEM=8 MAN=9 SEED=10 PX=15 dirp=4 RESTART: KEYS=0 WATERS=0 WIN=0 ROOMX=0 ROOMY=0 MANX=1 MANY=7 gems=0 RESTORE FOR Y=0 TO 40 READ LV$ FOR X=0 TO 45 B$=MID$(LV$,X+1,1) V=INSTR("#HFW5LKG",B$) MAP(X,Y)=V NEXT X NEXT Y GOSUB SHOWMAP DO DIR=0 IF BUTTON(0,1) THEN GOTO RESTART IF UP TAP(0) THEN DIR=1 IF DOWN TAP(0) THEN DIR=2 IF LEFT TAP(0) THEN DIR=3 IF RIGHT TAP(0) THEN DIR=4 IF DIR>0 THEN GOSUB WALK IF WIN=1 THEN GOTO WIN LOOP NEXTROOM: IF ROOMX+9*XA>44 OR ROOMX+9*XA<0 THEN RETURN IF ROOMY+8*YA>39 OR ROOMY+8*YA<0 THEN RETURN ROOMX=ROOMX+9*XA ROOMY=ROOMY+8*YA MANX=MANX-8*XA MANY=MANY-7*YA wait 10 GOTO SHOWMAP SHOWMAP: FOR Y=0 TO 8 FOR X=0 TO 9 V=MAP(ROOMX+X,ROOMY+Y) IF V=SEED THEN V=FIRE MAP(ROOMX+X,ROOMY+Y)=FIRE END IF CALL DRAW(X,Y,V) NEXT X NEXT Y CALL DRAW(MANX,MANY,MAN) GOTO SHOWINFO SHOWINFO: LOCATE 3,1 PRINT "ROOM(";ROOMX/9+1;",";ROOMY/8+1;")" cell px-1,1,key1 LOCATE PX,1 print KEYS;" " cell px-1,2,water LOCATE PX,2 PRINT WATERS;" " call draw(px-4,1,gem) LOCATE PX,4 PRINT gems RETURN WALK: XA=0 YA=0 IF DIR=1 THEN YA=-1 ELSE IF DIR=2 THEN YA=1 ELSE IF DIR=3 THEN dirp=3 XA=-1 ELSE IF DIR=4 THEN dirp=4 XA=1 END IF A0=MAP(ROOMX+MANX,ROOMY+MANY) X1=MANX+XA Y1=MANY+YA A1=MAP(ROOMX+X1,ROOMY+Y1) IF A1=WALL THEN RETURN IF YA=1 AND A1<>LADDER THEN RETURN IF YA=-1 AND A0<>LADDER THEN RETURN IF A1=FIRE and WATERS=0 THEN RETURN IF A1=LOCK and KEYS=0 THEN RETURN IF A1=KEY1 THEN KEYS=KEYS+1 MAP(ROOMX+X1,ROOMY+Y1)=0 GOSUB SHOWINFO END IF IF A1=WATER THEN WATERS=WATERS+2 MAP(ROOMX+X1,ROOMY+Y1)=0 GOSUB SHOWINFO END IF IF A1=WATER5 THEN WATERS=WATERS+5 MAP(ROOMX+X1,ROOMY+Y1)=0 GOSUB SHOWINFO END IF IF A1=LOCK THEN KEYS=KEYS-1 MAP(ROOMX+X1,ROOMY+Y1)=0 GOSUB SHOWINFO END IF IF A1=GEM THEN gems=gems+1 GOSUB SHOWINFO if gems=2 then win=1 MAP(ROOMX+X1,ROOMY+Y1)=0 END IF if a1=0 then if MAP(ROOMX+X1,ROOMY+Y1+1)=0 then return end if IF A1=FIRE THEN WATERS=WATERS-1 MAP(ROOMX+X1,ROOMY+Y1)=SEED GOSUB SHOWINFO END IF IF Y1>8 OR Y1<1 OR X1<1 OR X1>9 THEN GOSUB NEXTROOM x1=manx y1=many ' call debug(174,a1,x1,y1) if a1=seed then WATERS=WATERS-1 MAP(ROOMX+X1,ROOMY+Y1)=SEED GOSUB SHOWINFO end if end if CALL DRAW(MANX,MANY,A0) CALL DRAW(X1,Y1,MAN) MANX=X1 MANY=Y1 WAIT 10 RETURN WIN: LOCATE 3,11 PRINT "CONGRATULATION" END sub debug(n,a,b,c) locate 0,13 print n,a,b,c end sub SUB DRAW(X,Y,V) c=val(mid$("01030020303",v+1,1)) attr(c,) if v=9 then attr(,4-dirp) CELL X+3,Y+3,V attr(0,0) END SUB DATA "##############################################" DATA "#K W#KKL F K F KK FFF WW#" DATA "##H###########H H######H #######H ########H###" DATA "##H F L H H##### H L H L H###" DATA "###H######H###########H########H#######H HF###" DATA "# H#5F #H ## H#K 5 F H #####H H #" DATA "# H####H#######H###H###H #######H##########H#" DATA "# H H#KW FF H #WH #H FF H K#WW H#" DATA "######################H#H#####################" DATA "# F5# FFFFK 5 F H#HW F 5 F F FK#" DATA "#H####H######## ################H ####H###H###" DATA "#H####H LKK# H ####H HFK#" DATA "#H######H###H#########H########H###5 FH H#####" DATA "#H FFF H#K H W H H ####H H ###" DATA "########H#####H# #######H########H########H###" DATA "#### L H#W H FFF H# KF H L H###" DATA "####H#################H####H##################" DATA "# FHK 5 # GLFFW5 ####H KFH L FFKK##KFFLFFFK#" DATA "#H#### #H# ##HH## #K##H ##############H#H#H##" DATA "#H FFH# # HH # #H###H 5 L FF ##5 H#H#H5#" DATA "####H##### #H##H# #H ##H ########H####H#H#H##" DATA "#WF H K# #H H# ###H###H H### H#H#H##" DATA "######H### ##HH## #K H ##H############H#H#H##" DATA "# L H### HH #HFHFFF H L #####5 H#H#H5#" DATA "#H###########HH################H#########H####" DATA "#H L KF HHL # L HL #K###H####" DATA "#####H ##########H#H###############H#HHHHHHH##" DATA "#HW# H L L H#H # L H#FFFFF H##" DATA "#H##H#######H#########H#H############ #### H##" DATA "#HF H FF 5#H #KF H#H### L L FFFFFH##" DATA "######H##########H####H#H###H####H############" DATA "#KKL HFF K#WF H#KF H#H FLH# H F FFFFFFK#" DATA "#################H############H###############" DATA "#W F F H#K#KKFFFL HLL####KF LFFL #" DATA "###H###############H############H#######H#####" DATA "###H L 5#H# FFF HLLLLF#LH#KKG#" DATA "####H########H#####H#H#########H#####H#H####H#" DATA "#KK#H W ### HHHHK#H#H 55 # 55 H###K#H#HL LH#" DATA "#H####H# ###HFFFF##H#####H#H#######H#H###HH###" DATA "#HFFFLH #K HW#####H FFF H#HFFFFFF H#HLLLHH###" DATA "##############################################" #1:MAIN PALETTES 053F2F000038340000280C00003C3830 003F3D38003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 FF6060FFFF0606FF20BFBFFF02FBFBFF 42427E4242427E420000000000000000 00497F6B775D633E00497F5D49637F3E 0000003C3C3C3C00000042424242423C 007E7E7E7E7E7E00818181818181817E 00FE82BA9292C6FE00007C7C7C7C3800 0000000000000000007C447C10181018 00003C3C3C1800003C7EE7C366663C18 00000A00000024363C7E7E7E7E7E2436 0000000000000022000000000000003E