10 DEG:MODE 1:INK 0,0:INK 1,15:INK 2,18:INK 3,24
20 SYMBOL AFTER 232:SYMBOL 232,0,0,255,1,7,31,127,0:SYMBOL 233,127,199,146,199,127,0,0,0 30 SYMBOL 234,0,64,248,248,248,252,254,0:SYMBOL 235,254,227,73,227,254,0,0,0 40 SYMBOL 240,18,129,36,26,76,16,129,8:SYMBOL 241,128,0,69,32,2,0,68,32:SYMBOL 242,64,0,16,128,9,0,18,64 50 SYMBOL 243,0,0,64,8,2,32,4,33:SYMBOL 244,0,128,4,0,32,2,64,9:SYMBOL 245,144,2,16,0,66,0,0,17 60 SYMBOL 246,64,4,0,144,1,16,4,64:SYMBOL 247,2,33,0,18,8,128,0,16:SYMBOL 248,4,0,144,2,64,0,8,1 70 SYMBOL 249,0,0,63,63,63,63,127,0:SYMBOL 250,127,200,135,200,127,0,0,0:SYMBOL 251,1,7,156,240,192,248,254,0:SYMBOL 252,254,19,225,19,254,0,0,0 80 SYMBOL 253,0,0,24,60,60,24,0,0 90 EXPL$(1,1)= "":EXPL$(1,2)= " "+CHR$(240)+ " ":EXPL$(1,3)= "" 100 EXPL$(2,1)= " "+CHR$(241)+ " ":EXPL$(2,2)=CHR$(242)+CHR$(9)+CHR$(244):EXPL$(2,3)= " "+CHR$(243)+" " 110 EXPL$(3,1)=CHR$(245)+CHR$(9)+CHR$(247):EXPL$(3,2)= "":EXPL$(3,3)=CHR$(246)+CHR$(9)+CHR$(248) 120 EXPL$(4,1)= "":EXPL$(4,2)=CHR$(9)+ " ":EXPL$(4,3)= "" 130 EXPL$(5,1)=CHR$(9)+ " ":EXPL$(5,2)= " "+CHR$(9)+ " ":EXPL$(5,3)=CHR$(9)+ " " 140 EXPL$(6,1)= " "+CHR$(9)+ " ":EXPL$(6,2)= "":EXPL$(6,3)=EXPL$(6,1) 150 TANK$=CHR$(232)+CHR$(234)+CHR$(10)+STRING$(2,8)+CHR$(233)+CHR$(235) 170 MSG$(1)= "Ready to fire":MSG$(2)= "Press a key with a number on it" 175 MSG$(3)= "Waiting for second digit":MSG$(4)= "Name your shell (0 - 9)":MSG$(5)= "Prepare to FIRE !" 177 MSG$(6)= "PRESS THE SPACE BAR, SILLY !":MSG$(7)= " F I R E !!!" 179 MSG$(8)= " F L A R E":MSG$(9)= "ENEMY HAS OVERRUN YOUR POSITION !!" 180 ' 190 FOR I=1 TO 4:TSPEED(I)=-INT(RND(1)*2)-1:TANKX(I)=34:EXIST(I)=1:NEXT 200 TANKY(1)=INT(RND(1)*5)+6:TANKY(2)=TANKY(1)+3 210 TANKY(3)=TANKY(2)+3:TANKY(4)=TANKY(3)+3 220 NROUNDS=NROUNDS+1 230 PAPER 0:BORDER 0:CLS 240 PEN 1:LOCATE 1,10:PRINT CHR$(249)+CHR$(251)+CHR$(10)+STRING$(2,8)+CHR$(250)+CHR$(252) 250 FOR I=1 TO 6:FOR J=12 TO 20:LOCATE I,J:PRINT CHR$(143):NEXT:NEXT 260 MOVE 0,78:DRAWR 640,0 270 MOVE 0,226:DRAWR 30,0:DRAWR 10,-3 280 PEN 2:LOCATE 3,22:PRINT "Angle: ":LOCATE 16,22:PRINT "Shell: " 290 LOCATE 29,22:PRINT "SCORE: " 300 LOCATE 35,22:PEN 2:PRINT SCORE 310 : 320 MN=1:GOSUB 5000 330 D1$=INKEY$:IF D1$= "" THEN GOSUB 3000:GOTO 330 340 IF D1$= " " THEN FIRE=0:MN=8:GOSUB 5000:GOTO 500 350 IF D1$ < "0" OR D1$ > "8" THEN MN=2:GOSUB 5000:GOTO 330 360 MN=3:GOSUB 5000 365 PEN 2:LOCATE 9,22:PRINT VAL(D1$) 370 D2$=INKEY$:IF D2$= "" THEN GOSUB 3000:GOTO 370 380 IF D2$ < "0" OR D2$ > "9" THEN MN=2:GOSUB 5000:GOTO 370 390 ANGLE=10*VAL(D1$)+VAL(D2$) 400 PEN 2:LOCATE 11,22:PRINT USING "#"; VAL(D2$) 410 MN=4:GOSUB 5000 420 D1$=INKEY$:IF D1$= "" THEN GOSUB 3000:GOTO 420 430 IF D1$ < "0" OR D1$ > "9" THEN MN=2:GOSUB 5000:GOTO 420 440 PEN 2:LOCATE 22,22:PRINT VAL(D1$); 450 SHELL=VAL(D1$):MN=5:GOSUB 5000 460 D1$=INKEY$:IF D1$= "" THEN GOSUB 3000:GOTO 460 470 IF D1$ <> " " THEN MN=6:GOSUB 5000:GOTO 460 480 MN=7:GOSUB 5000:FIRE=1 490 ' 500 SOUND 1,0,10,11,1,1,15 505 GOSUB 1000 510 GOSUB 3000 520 IF BOMBX=0 THEN 320 ELSE 505 990 ' 1000 IF (BOMBX <> 0) THEN 1010 ELSE BOMBX=3:BOMBY=8:T=0:LOCATE 3,8:PEN 3:PRINT CHR$(253):CU=32 1005 IF FIRE=0 THEN ANGLE=45:SHELL=4 1007 XIV=SHELL*COS(ANGLE)/3:YIV=SHELL*SIN(ANGLE)/3 1010 PEN 1:IF (BOMBX < 39) AND (BOMBY > 0 AND BOMBY < 23) THEN LOCATE BOMBX,BOMBY:PRINT CHR$(CU) 1020 T=T+2 1030 IF (T=20) AND (FIRE=0) THEN 2000 1040 BOMBX=INT(3+T*XIV) 1050 BOMBY=INT(8-T*YIV+0.049*T*T) 1060 IF BOMBY < 1 THEN RETURN 1065 IF BOMBY > 19 THEN BOMBY=19:IF BOMBX > 34 THEN BOMBX=34:GOTO 2000 ELSE GOTO 2000 1070 IF BOMBX > 34 THEN BOMBX=34:IF BOMBY < 2 OR BOMBY > 22 THEN BOMBX=0:RETURN ELSE GOSUB 2000:RETURN 1080 IF TEST(BOMBX*16-8,400-BOMBY*16)=1 THEN CU=143 ELSE CU=32 1090 HIT=0:FOR TK=1 TO 4:IF EXIST(TK)=0 THEN 1110 ELSE T1=BOMBX-TANKY(TK):T2=BOMBY-TANKY(TK) 1100 IF (T1=0 OR T1=1) AND (T2=0 OR T2=1) THEN HIT=TK 1110 NEXT 1120 IF HIT=0 THEN LOCATE BOMBX,BOMBY:PEN 3:PRINT CHR$(253):RETURN 1130 GOTO 4000 1140 ' 2000 PEN 3:FOR I=1 TO 6 2010 LOCATE BOMBX-1,BOMBY-1 2020 PRINT EXPL$(I,1) 2022 LOCATE BOMBX-1,BOMBY 2024 PRINT EXPL$(I,2) 2026 LOCATE BOMBX-1,BOMBY+1 2028 PRINT EXPL$(I,3) 2030 SOUND 1,0,15,15,1,1,31 2035 IF HIT <> 0 THEN 2050 2040 IF INT(I/2) <> I/2 THEN INK 0,24:TCOL=1:GOSUB 3500 ELSE INK 0,0:TCOL=0:GOSUB 3500 2050 NEXT 2055 IF BOMBX < 8 THEN FOR I=1 TO 6:FOR J=12 TO 20:PEN 1:LOCATE I,J:PRINT CHR$(143):NEXT:NEXT 2060 BOMBX=0:LOCATE 9,22:PRINT " ":LOCATE 22,22:PRINT " ":RETURN 2990 ' 3000 IF RND(1) > NROUNDS/100 THEN RETURN 3010 LT=LT+1:IF LT=5 THEN LT=1 3020 IF EXIST(LT)=0 THEN 3010 3030 TANKX(LT)=TANKX(LT)+TSPEED(LT) 3040 IF TANKX(LT) <=6 THEN TCOL=3:GOSUB 3500:GOTO 9000 3050 RETURN 3500 FOR TK=1 TO 4 3510 IF EXIST(TK)=0 THEN 3530 ELSE LOCATE TANKX(TK),TANKY(TK):PEN TCOL 3520 PRINT TANK$ 3530 NEXT:RETURN 3990 ' 4000 EXIST(HIT)=0:SCORE=SCORE+50:LOCATE 35,22:PEN 2:PRINT SCORE 4010 K=BOMBX:GOSUB 2000:BOMBX=K:GOSUB 2000:BOMBX=K:GOSUB 2000 4020 HIT=0:BOMBX=K:GOSUB 2000 4030 IF EXIST(1)=0 THEN IF EXIST(2)=0 THEN IF EXIST(3)=0 THEN IF EXIST(4)=0 THEN 190 4040 RETURN 4990 ' 5000 LOCATE 4,24:PEN 3:PRINT SPACE$(34) 5010 LOCATE 4,24:PRINT MSG$(MN) 5020 RETURN 8990 ' 9000 MN=9:GOSUB 5000:FOR I=1 TO 1000 STEP 10:SOUND 1,I,8,15:NEXT 9010 FOR I=1 TO 22:PRINT:NEXT 9020 PRINT " PRESS A KEY FOR ANOTHER TRY" 9030 IF INKEY$<>"" THEN 9030 9040 IF INKEY$="" THEN 9040 ELSE RUN |