10 REM SNIPER
20 ENV 1,8,-1,1 30 ENT 1,8,1,1 40 ENV 2,30,-3,10,15,-2,5 50 DEFINT A-Z 60 BASE$=" "+CHR$(160)+" " 70 SPIES=0 80 HITS=0 90 SPYFLAG=0 100 SPYCH=250 110 REM NEW SNIPER LOOP 120 MY=0 130 BASE=10 140 MODE 0 150 LOCATE 1,25 160 PAPER 7:PEN 4 170 FOR Q=1 TO 20 180 PRINT CHR$(127); 190 NEXT Q:PAPER 0 200 BORDER 5 210 INK 2,7 220 PEN 11 230 LOCATE BASE-1,24:PRINT BASE$; 240 REM MAIN LOOP 250 IF MY<>0 THEN GOSUB 580 260 FLAG=0 270 IF INKEY(8)=0 AND BASE>2 THEN BASE=BASE-1:FLAG=1 280 IF INKEY(1)=0 AND BASE<19 THEN BASE=BASE+1:FLAG=1 290 IF FLAG=1 THEN PEN 11:LOCATE BASE-1,24:PRINT BASE$; 300 IF INKEY(9)=0 AND MY=0 THEN MY=23:MX=BASE:SOUND 130,0,50,15,2,15 310 GOSUB 410 320 IF SPIES<>10 THEN GOTO 240 330 REM ALL SPIES RUN AWAY OR SHOT 340 CLS:PRINT"ALL SPIES HAVE BEEN KILLED" 350 LOCATE 1,5:PRINT"YOU HIT ";HITS;" OF THEM" 360 IF HITS>8 THEN PRINT" ( there may be a medal in this for you )" 370 IF INKEY$=" " THEN GOTO 370 380 IF INKEY$<>" " THEN GOTO 380 390 RUN 400 END 410 REM PERFORM SPY ACTIONS 420 IF SPYFLAG=1 THEN GOTO 460 430 IF RND(1)>0.007 THEN RETURN 440 SPYPOS=INT(RND(1)*10)+6:SPYDIR=1:IF RND(1)>0.5 THEN SPYDIR=-1 450 GOTO 570 460 REM SPY IS PRESENT 470 IF SPYPOS=1 OR SPYPOS=19 THEN LOCATE SPYPOS+1,5: PRINT" ";:GOTO 560 480 IF RND(1)>0.09 THEN GOTO 550 490 SOUND 1,0,10,3,1,1,6 500 SPYPOS=SPYPOS+SPYDIR 510 LOCATE SPYPOS,5 520 PEN 3 530 SPYCH=501-SPYCH 540 PRINT " ";CHR$(SPYCH);" "; 550 RETURN 560 PRINT" ";:SPIES=SPIES+1 570 SPYFLAG=1-SPYFLAG:RETURN 580 REM MOVE MISSILE UP 590 LOCATE MX,MY:PRINT " "; 600 MY=MY-1 610 IF MY=0 THEN RETURN 620 LOCATE MX,MY 630 IF MX=SPYPOS+1 AND MY=5 THEN HITS=HITS+1:PRINT " ";:SPYFLAG=0:MY=0:SOUND 3,200+20*SPIES,15:SPYPOS=0:RETURN 640 PEN 9:PRINT CHR$(148); 650 RETURN |