25 lines
1,003 B
QBasic
25 lines
1,003 B
QBasic
10 PRINT CHR$(147):POKE 53280,0:POKE 53281,0
|
|
20 PRINT " METEOR DODGE":PRINT:PRINT " A=LEFT D=RIGHT Q=QUIT"
|
|
25 PRINT:PRINT " PRESS ANY KEY"
|
|
30 GET A$:IF A$="" THEN 30
|
|
35 R=RND(-TI)
|
|
40 DIM X(5),Y(5):FOR I=1 TO 5:X(I)=INT(RND(1)*38)+1:Y(I)=-I*4:NEXT
|
|
50 P=20:S=0:L=3:PRINT CHR$(147)
|
|
60 GET A$:IF A$="A" AND P>1 THEN P=P-1
|
|
70 IF A$="D" AND P<38 THEN P=P+1
|
|
80 IF A$="Q" THEN 190
|
|
90 FOR I=1 TO 5:IF Y(I)>=0 THEN POKE 1024+Y(I)*40+X(I),32
|
|
100 Y(I)=Y(I)+1:IF Y(I)>22 THEN Y(I)=0:X(I)=INT(RND(1)*38)+1:S=S+1
|
|
110 IF Y(I)=22 AND ABS(X(I)-P)<2 THEN L=L-1:Y(I)=0:X(I)=INT(RND(1)*38)+1
|
|
120 IF Y(I)>=0 THEN POKE 1024+Y(I)*40+X(I),42:POKE 55296+Y(I)*40+X(I),8
|
|
125 NEXT
|
|
130 POKE 1024+22*40+P,1:POKE 55296+22*40+P,1
|
|
140 PRINT CHR$(19);" SCORE";S;" SHIELDS";L;" "
|
|
150 FOR D=1 TO 55:NEXT:POKE 1024+22*40+P,32
|
|
160 IF L>0 THEN 60
|
|
170 PRINT CHR$(147):PRINT "FINAL SCORE:";S:PRINT
|
|
180 PRINT "R=REPLAY Q=QUIT"
|
|
190 GET A$:IF A$="R" THEN RUN
|
|
200 IF A$<>"Q" THEN 190
|
|
210 POKE 53280,14:POKE 53281,6:PRINT CHR$(147):END
|
|
|