10 MODE2 20 ch=0:K=100:sc=0:dm=0 30 tm=10:lv=1:lt=1000 40 VDU23;8202;0;0;0; 50 PROCenv 60 y=1 70 VDU5:d1=10:d2=1000 80 GCOL0,y 90 MOVE d1,d2:PRINT"LEVEL ";lv 100 MOVE d1,d2-150:PRINT"MAX TIME :";tm;" SECS" 110 MOVE d1,d2-300:PRINT"SCORE : ";sc 120 IF ch=0 ch=1:y=3:d1=d1+8:d2=d2-6:GOTO 80 130 FORe=1TO10:SOUND 7,1,90,1:FORy=1TO200:NEXTy:NEXT:G$=INKEY$(1000):CLS 140 ch=0:y=1:VDU4 150 PROCgrid 160 PROCstars 170 PROCbuild 180 PROCman 190 END 200 DEFPROCgrid 210 COLOUR1:PRINTTAB(0,0)"SCORE :";sc 220 COLOUR2:PRINTTAB(0,30)"DAMAGE : ";dm 230 IF sc>=lt CLS:dm=dm-10:lt=lt+1000:lv=lv+1:tm=tm-1:GOTO70:ENDPROC 240 X=0:Y=0:GCOL0,4 250 C1=0:C2=100 260 MOVE X,Y+100:DRAW X+1300,Y+100 270 DRAW X+700,Y+300 280 DRAW X,Y+100 290 GCOL0,7:MOVE X,Y+75:DRAW X+1300,Y+75:MOVE 0,900:DRAW 1300,900 300 PROCdraw 310 ENDPROC 320 DEFPROCman:X2=0:X3=100 330 TIME=0 340 SEC=(TIME DIV 100)MOD 60:PRINTTAB(0,2)"TIME :";SEC;" SECS" 350 COLOUR 2:PRINTTAB(0,30)"DAMAGE : ";dm 360 IF dm>=250 PROCdie 370 IF SEC>=tm dm=dm+1 380 GCOL0,6 390 MOVEX2,Y+100:DRAW X+700,Y+300 400 DRAW X3,Y+100:DRAW X2,Y+100 410 GT$=INKEY$(1) 420 IF GT$="" GOTO460 430 GCOL0,4:MOVEX2,Y+100:DRAW X+700,Y+300:DRAW X3,Y+100:DRAW X2,Y+100 440 SOUND &11,2,6,1:SOUND &12,2,6,1:SOUND &13,2,6,1 450 *FX15,1 460 IF GT$="X" OR GT$="x" PROCright 470 IF GT$="Z" OR GT$="z" PROCleft 480 IF GT$=CHR$(13) PROCfire 490 p=RND(20-lv) 500 IF p=1 MOVE x1+50,y1+15:DRAW x1+50,200:dm=dm+1:PROCblow 510 GOTO 340 520 ENDPROC 530 DEFPROCright:X2=X2+100 540 IF X2>=1200 X2=1200:X3=1300:GOTO570 550 X3=X3+100 560 C1=C1+K:C2=C2+K 570 ENDPROC 580 DEFPROCleft:X2=X2-100 590 IF X2<=0 X2=0:X3=100:GOTO 620 600 X3=X3-100 610 C1=C1-K:C2=C2-K 620 ENDPROC 630 DEFPROCfire:GCOL0,1 640 *FX15,1 650 SOUND &10,1,100,10 660 MOVEX2,Y+100:DRAW X+700,Y+300:DRAW X3,Y+100:DRAW X2,Y+100 670 PLOT85,X+700,Y+300 680 FORT=1TO100:NEXT 690 GCOL0,0:MOVEX2,Y+100:DRAW X+700,Y+300:DRAW X3,Y+100:DRAW X2,Y+100:PLOT85,X+700,Y+300:GCOL0,4:MOVEX2,Y+100:DRAW X+700,Y+300:DRAW X3,Y+100:DRAW X2,Y+100 700 GCOL0,1 710 IF C1>600 X7=(1000-C1-C1)+C2 720 IF C1<=600 X7=(1300-C1-C1)+C2 730 MOVE700,300:DRAW X7,y1:DRAW X7+100,y1:DRAW 700,300 740 PLOT85,X7,y1:GCOL0,0:MOVE700,300:DRAW X7,y1:DRAW X7+100,y1:DRAW 700,300:PLOT85,X7,y1 750 PLOT85,X7,y1:GCOL0,0:MOVE700,300:DRAW X7,y1:DRAW X7+100,y1:DRAW 700,300:PLOT85,X7,y1 760 PRINTTAB(0,0)"SCORE :";sc 770 GCOL0,0:FORY7=300 TO 775 STEP 100:MOVE X7,Y7:DRAW X7+125,Y7:DRAW X7+125,Y7+100:DRAW X7,Y7+100:DRAW X7,Y7:PLOT85,X7+125,Y7+100:PLOT85,X7+125,Y7:NEXT 780 IF POINT(x1,y1)=0 AND POINT(x1+100,y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND POINT(x1+50,y1+50)=0 sc=sc+(l*10):FORT=1TO10:j=RND(8):GCOL0,j:PLOT69,X7+RND(125),300+RND(475):NEXT 790 IF POINT(x1,y1)=0 AND POINT(x1+100,y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND POINT(x1+50,y1+50)=0 x10=x1-50:FORy=1TO20:GCOL0,RND(7):PLOT69,x10+RND(100),RND(50)+y1:NEXT:PROCexplode 800 IF POINT(x1,y1)=0 AND POINT(x1+100,y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND POINT(x1+50,y1+50)=0 GCOL0,0:FORy=1TO50:NEXT:MOVE x10,y1:DRAW x10+100,y1:DRAWx10+100,y1+50:DRAW x10,y1+50:DRAW x10,y1 810 IF POINT(x1,y1)=0 AND POINT(x1+100,y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND POINT(x1+50,y1+50)=0 PLOT85,x10+100,y1+50:PLOT85,x10+100,y1:PROCbuild 820 ENDPROC 830 DEFPROCbuild:TIME=0 840 FORh=1TO5:SOUND 8,1,4,1:NEXT 850 COLOUR1:PRINTTAB(0,0)"SCORE :";sc 860 COLOUR2:PRINTTAB(0,30)"DAMAGE : ";dm 870 IF dm>=250 PROCdie 880 IF sc>=lt CLS:dm=dm-10:lt=lt+1000:lv=lv+1:tm=tm-1:GOTO70:ENDPROC 890 y1=RND(225)+500:x2=RND(10):IF x2>=4 AND x2<=6 GOTO 890 ELSE IF x2=10 GOTO 890 ELSE x1=(x2*100)+100 900 l=RND(6)+8 910 GCOL0,7 920 MOVE x1+40,y1:DRAW x1+60,y1:DRAW x1+60,y1+50:DRAW x1+40,y1+50:DRAW x1+40,y1:PLOT85,x1+60,y1+50:PLOT85,x1+60,y1 930 GCOL0,l 940 MOVE x1,y1+15:DRAW x1+40,y1+15:DRAW x1+40,y1+35:DRAW x1,y1+35:DRAW x1,y1+15 950 PLOT85,x1+40,y1+35:PLOT85,x1+40,y1+15 960 MOVE x1+60,y1+15:DRAW x1+100,y1+15:DRAW x1+100,y1+35:DRAW x1+60,y1+35:DRAW x1+60,y1+15 970 PLOT85,x1+100,y1+35:PLOT85,x1+100,y1+15 980 ENDPROC 990 DEFPROCenv:ENVELOPE 3,1,0,0,0,0,0,0,-126,-2,0,-1,126,80:ENVELOPE 1,1,0,0,0,0,0,0,-126,-2,0,-1,126,80:ENVELOPE2,1,0,0,0,0,0,0,-126,-2,0,-1,126,80:ENVELOPE4,1,0,0,0,0,0,0,-126,-2,0,-1,126,80 1000 ENVELOPE 8,0,-128,127,19,35,68,200,2,3,-10,24,110,120:ENVELOPE 12,8,1,-1,1,1,1,1,121,-10,5,-2,120,120:ENVELOPE 7,0,0,1,1,1,1,1,121,-10,0,-2,120,120:ENDPROC 1010 DEFPROCstars 1020 FORT=1TO100:g=RND(7) 1030 GCOL0,g:PLOT69,RND(1300),RND(400)+500:NEXT:ENDPROC 1040 DEFPROCexplode:SOUND &10,1,100,20:ENDPROC 1050 DEFPROCblow:x10=0:FORh=1TO50:NEXT:GCOL0,0:MOVE x1+50,y1+15:DRAW x1+50,200:x10=x1 1060 GT$=INKEY$(1): IF GT$="X" OR GT$="x" PROCright ELSE IF GT$="Z" OR GT$="z" PROCleft ELSE IF GT$=CHR$(13) PROCfire 1070 x10=x10-50:FORy=1TO20:GCOL0,RND(7):PLOT69,x10+RND(100),RND(50)+200:NEXT 1080 PROCexplode:GCOL0,0:FORy=1TO100:NEXT 1090 MOVE x10,200:DRAW x10+100,200:DRAWx10+100,250:DRAW x10,250:DRAW x10,200:PLOT85,x10+100,250:PLOT85,x10+100,200 1100 PROCdraw 1110 ENDPROC 1120 DEFPROCdraw:GCOL0,4:FORT=0 TO 1300 STEP 100:MOVE T,Y+100:DRAW X+700,Y+300:NEXT:X1=1300:X=0:FORT=100 TO 300 STEP 25:MOVE X,T:DRAW X1,T:X=X+85:X1=X1-75:NEXT:X=0:ENDPROC 1130 DEF PROCdie 1140 CLS 1150 CLG 1160 PRINT"DAMAGE ABOVE 250" 1170 PRINT 1180 PRINT"YOU ARE SPACE DEBRIS" 1190 PRINT 1200 PRINT"RETURN TO RESTART" 1210 PRINT 1220 *FX15 1230 A=GET 1240 CLEAR:RUN 1250 ENDPROC