100 ' 110 CLEAR:CLS 120 ZX=5:VC$=CHR$(&H85):MC$="v":AC$=CHR$(&HEE):BC$="|" 130 SC=0:NA=3:LV=.2 150 AX=0:AY=3:BF=0 160 VX=3:VY=0:MF=0 170 LOCATE AX,AY:PRINT AC$; 180 LOCATE VX,VY:PRINT VC$; 190 GOSUB 2500 200 ' 210 D=FIX(RAN#*3)-1+VX 220 IF D<0 THEN D=0 230 IF D>ZX THEN D=ZX 300 ' 310 IF VX=D GOTO 400 320 LOCATE VX,VY:PRINT " "; 330 VX=D 340 LOCATE VX,VY:PRINT VC$; 400 ' 410 IF MF<>0 GOTO 450 420 IF RAN#>LV GOTO 500 430 MX=VX:MY=0:MF=1 440 ' 450 IF MY>0 THEN LOCATE MX,MY:PRINT " "; 460 MY=MY+1 470 IF MX<>AX OR MY<>AY GOTO 480 472 GOSUB 2000 474 IF NA>0 GOTO 170 476 GOSUB 3000:GOTO 100 480 IF MY>3 THEN MF=0:GOTO 500 490 LOCATE MX,MY:PRINT MC$; 500 ' 510 K$=INKEY$:IF K$="" GOTO 600 520 IF K$="0" THEN GOSUB 1000:GOTO 600 530 IF K$="." THEN GOSUB 1100:GOTO 600 540 IF K$="Z" THEN GOSUB 1200:GOTO 600 600 ' 610 IF BF=0 GOTO 700 620 IF BY<3 THEN LOCATE BX,BY:PRINT " "; 630 BY=BY-1:IF BY<0 THEN BF=0:GOTO 700 640 IF BX=VX AND BY=VY THEN GOSUB 2200:GOTO 160 650 IF BY<0 THEN MF=0:GOTO 700 660 LOCATE BX,BY:PRINT BC$; 700 ' 710 GOTO 200 1000 ' 1010 IF AX=0 THEN RETURN 1020 LOCATE AX,AY:PRINT " "; 1030 AX=AX-1 1040 LOCATE AX,AY:PRINT AC$; 1050 RETURN 1100 ' 1110 IF AX>=ZX THEN RETURN 1120 LOCATE AX,AY:PRINT " "; 1130 AX=AX+1 1140 LOCATE AX,AY:PRINT AC$; 1150 RETURN 1200 ' 1210 IF BF<>0 THEN RETURN 1220 BX=AX:BY=3:BF=1 1230 RETURN 2000 ' 2010 FORI=1TO5 2020 LOCATE AX,AY:PRINT "+"; 2025 FORJ=1TO10:NEXT 2030 LOCATE AX,AY:PRINT CHR$(&HF0); 2035 FORJ=1TO10:NEXT 2040 NEXT 2060 ' 2070 NA=NA-1:GOSUB 2500 2080 MF=0 2090 RETURN 2200 ' 2210 IF MF<>0 THEN LOCATE MX,MY:PRINT " ";:MF=0 2220 FORI=1TO3 2230 LOCATE VX,VY:PRINT "*"; 2240 FORJ=1TO10:NEXT 2250 LOCATE VX,VY:PRINT " "; 2260 FORJ=1TO10:NEXT 2270 NEXT 2280 SC=SC+1:GOSUB 2500 2290 LV=SC/50+.2:IF LV>.8 THEN LV=.8 2390 RETURN 2500 ' 2510 LOCATE ZX+4,0:PRINT USING "SC:###";SC; 2520 LOCATE ZX+4,1:PRINT NA; 2530 RETURN 3000 ' 3010 LOCATE ZX+4,2:PRINT "GAME OVER"; 3020 LOCATE ZX+4,3:PRINT "PUSH [EXE] KEY"; 3030 IF INKEY$<>CHR$(13) GOTO 3030 3090 RETURN