100CLEAR :RANDOMIZE 110DIM IV(6) 120DIM AM$(3):AM$(1)="-":AM$(2)="=":AM$(3)="Ð" 130DIM DT$(12):RESTORE :FOR I=1 TO 12:READ DT$(I):NEXT 140DATA 0,1,2,3,4,5,6,7,8,9,n," " 150U=11:Z=12 200CLS 210LOCATE 0,0:PRINT ".:Change number"; 220LOCATE 0,1:PRINT "=:Fire"; 230LOCATE 0,3:PRINT "PUSH [ENTER]"; 240IF INKEY$ <> CHR$ (13) GOTO 240 300CLS 310SC=0:ST=0:AR=3 320DI=0:MI=16:CF=0 330FF=0:FOR I=1 TO 6:IV(I)=Z:NEXT 340WT=100-(ST*5):W=WT:KP$="" 350AM=1:NA=30:SUM=0:UF=0:NI=DI 400LOCATE 0,0:PRINT DT$(AM);AM$(AR); 500W=W-1 510IF W=1 THEN GOSUB 1000:GOTO 570 520IF W=0 THEN GOSUB 1200:GOTO 500 530K$= INKEY$ :IF K$=KP$ GOTO 500 540KP$=K$ 550IF K$="." THEN GOSUB 600:GOTO 500 560IF K$="=" THEN GOSUB 700:GOTO 570 570IF CF<>0 GOTO 2000 580IF FF<>0 GOTO 2100 590GOTO 500 600AM=AM MOD 11+1 610LOCATE 0,0:PRINT DT$(AM); 620RETURN 700NA=NA-1:IF NA<=0 GOTO 2200 710D=0:FOR I=1 TO 6 720IF AM=IV(I) THEN D=I:I=6 730NEXT 740IF D=0 THEN RETURN 750IF AM>=U GOTO 780 760SC=SC+D*10:SUM=SUM+(AM-1):UF=1:DI=DI+1 770GOTO 790 780SC=SC+300 790' 800IF DI>=MI THEN CF=1:RETURN 810IF D=1 GOTO 830 820FOR I=D TO 2 STEP -1:IV(I)=IV(I-1):LOCATE I+1,0:PRINT DT$(IV(I));:NEXT 830IV(1)=Z:LOCATE 2,0:PRINT " "; 840RETURN 1000' 1010IF IV(1)<>Z THEN FF=1:RETURN 1020IF NI>=MI THEN V=Z:GOTO 1070 1030IF UF=1 AND (SUM MOD 10)=0 THEN V=U:UF=0:GOTO 1070 1040V= FIX ( RND (1)*10)+1 1050NI=NI+1 1070RETURN 1200' 1210FOR N=1 TO 5:IV(N)=IV(N+1):LOCATE N+1,0:PRINT DT$(IV(N)); 1220K$= INKEY$ :IF K$=KP$ THEN K$="" ELSE KP$=K$ 1230IF K$="." THEN GOSUB 600 1240IF K$="E" THEN GOSUB 700 1250NEXT 1260IV(6)=V:LOCATE 7,0:PRINT DT$(V); 1270W=WT 1280' 1290RETURN 2000MS$="Stage clear!":GOSUB 3000 2010ST=ST+1 2020IF ST>9 THEN ST=0 2030CLS :GOTO 320 2100AR=AR-1:IF AR<=0 GOTO 2200 2110MS$="Failed!":GOSUB 3000 2120CLS :GOTO 330 2200MS$="Game over!":GOSUB 3000 2210GOTO 200 3000LOCATE 0,1:PRINT STR$ (ST);"-";SC; 3010LOCATE 0,3:PRINT "PUSH [ENTER]";:X=0 3020LOCATE 0,2:IF (X MOD 2)=0 THEN PRINT MS$; ELSE FOR I=1 TO LEN (MS$):PRINT " ";:NEXT 3030KI=0:N=40 3040FOR I=1 TO N 3050IF INKEY$ = CHR$ (13) THEN KI=1:I=N 3060NEXT 3070IF KI<>0 GOTO 3110 3080X=X+1 3100GOTO 3020 3110RETURN