10 REM EXOCET
20 REM à ROBERT ERSKINE
25 REM PAN BOOKS 1984
30 MODE 1:BORDER 0:INK 0,0:INK 1,6:INK 2,20:INK 3,1:WINDOW #1,1,40,1,25:PAPER #0,0:PEN #0,1:CLS #1
40 DIM G$(10),S$(10)
50 GOSUB 840
60 GOSUB 580
70 WINDOW #0,5,36,1,25:PAPER #0,3:PEN #0,1:CLS #0
80 GOSUB 360
90 GOSUB 430
100 HS=0
110 FOR P=1 TO 10
120 FOR X=1 TO (LEN(S$(P))-32)
130 PEN 2:LOCATE 1,11:PRINT CHR$(24);MID$(S$(P),X,32);CHR$(24);:PEN 1:
140 LOCATE COL+1,LIN+1:PRINT" ";
150 IF INKEY(8)=0 AND FLAG=0 AND COL>0 THEN COL=COL-1:T=T-8
160 IF INKEY(1)=0 AND FLAG=0 AND COL<26 THEN COL=COL+1:T=T+8
170 LOCATE COL+1,LIN+1:PRINT"+";
180 IF FLAG=1 THEN 220
190 IF INKEY(47)<>0 THEN 310
200 L=0:D=1:FLAG=1:Y=127
210 EX=EX-1
220 PLOT Y*2+64,L*2+48,1:PLOT Y*2+63,L*2+48,1:PLOT Y*2+65,L*2+48,1
230 LL=L:YY=Y
240 SOUND 1,180,3
250 IF L>=80 THEN D=0
255 PLOT Y*2+64,l*2+48,3:PLOT Y*2+63,L*2+48,3:PLOT Y*2+66,L*2+48,3
260 IF RND>0.8 THEN 290
270 L=L-8*(D=1)+8*(D=0)
280 Y=Y-(ABS(Y-T)/2)*(T>Y)+(ABS(Y-T)/2)*(T<=Y)
290 IF L>90 THEN PLOT YY*2+64,LL*2+48,2
300 IF L<=80 AND D=0 THEN GOSUB 690
310 IF FLAG=0 THEN FOR XX=1 TO 40:NEXT
320 IF EX<0 THEN 500
330 NEXT X,P
340 GOTO 500
350 STOP
360 CLS:PEN 2:LIN=11:COL=15:T=123:FLAG=0:EX=10
370 FOR Y=1 TO 11
380 PEN 2:LOCATE 1,Y:PRINT STRING$(32,143);
390 NEXT
400 PEN 1
410 RETURN
420 STOP
430 FOR P=1 TO 4
440 S$(P)=Q$
450 FOR X=1 TO 30:S$(P)=S$(P)+G$(INT(RND*10)+1):NEXT X
460 S$(P)=S$(P)+Q$
470 NEXT P
480 SC=0
490 RETURN
500 CLS:PEN 2:LOCATE 7,11:PRINT"YOUR SCORE WAS";SC:PEN 1
510 SC=0:EX=10
520 LOCATE 4,21:PEN 2:PRINT CHR$(24);"PRESS ANY KEY TO RESTART";CHR$(24);:PEN 1
530 IF INKEY$<>"" THEN 530
540 IF INKEY$="" THEN 540:ELSE GOSUB 360
550 GOSUB 430
560 GOTO 110
570 END
580 REM
590 PEN 3:PRINT:PRINT CHR$(24);"              E X O C E T               ";CHR$(24);:PEN 1
600 PEN 2:PRINT:PRINT"The object of this game is to sink the  enemy ships with Exocet missiles as theycross the horizon.":PEN 1
610 PRINT:PRINT:PRINT"TO MOVE LEFT AND RIGHT USE THE ARROW KEY"
620 PEN 3:PRINT:PRINT"        USE THE SPACEBAR TO FIRE.":PEN 1
630 LOCATE 11,14:PEN 2:PRINT"HIT ON ";:PEN 3:PRINT CHR$(234);CHR$(235);CHR$(236);:PEN 2:PRINT" SCORES 10":PEN 1
640 LOCATE 11,16:PEN 3:PRINT"HIT ON ";:PEN 2:PRINT CHR$(232);CHR$(233);:PEN 3:PRINT"  SCORES 20":PEN 1
650 LOCATE 11,18:PEN 2:PRINT"HIT ON ";:PEN 1:PRINT CHR$(231);:PEN 2:PRINT"   SCORES 30":PEN 1
660 PEN 3:LOCATE 10,23:PRINT CHR$(24);"PRESS ANY KEY TO START";CHR$(24);:PEN 1
670 IF INKEY$<>"" THEN 670
680 IF INKEY$="" THEN 680 ELSE CLS:RETURN
690 IF TEST(Y*2+64,88*2+48)<>3 THEN 790
700 IF MID$(S$(P),X+COL,1)=CHR$(231) THEN SC=SC+30
710 IF MID$(S$(P),X+COL,2)=CHR$(232)+CHR$(233) OR MID$(S$(P),X+COL-1,2)=CHR$(232)+CHR$(233) THEN SC=SC+20
720 IF MID$(S$(P),X+COL,3)=CHR$(234)+CHR$(235)+CHR$(236) OR MID$(S$(P),X+(COL-1),3)=CHR$(234)+CHR$(235)+CHR$(236) OR MID$(S$(P),X+(COL-2),3)=CHR$(234)+CHR$(235)+CHR$(236) THEN SC=SC+10
730 RESTORE 770
740 FOR Z=1 TO 15:SOUND 1,(Z*7),3
750 PLOT Y*2+64,L*2+85,1:READ YY,LL:DRAWR YY*2,LL*2,1
760 NEXT Z
770 DATA -4,4,-4,5,-3,6,-3,7,-2,8,-3,9,-1,10,0,11,1,10,2,9,2,8,3,7,3,6,4,5,4,4
780 S$(P)=LEFT$(S$(P),X-1)+MID$(S$(P),X,COL-3)+"      "+MID$(S$(P),(X+(COL+3)))
790 FLAG=0
800 PEN 2:LOCATE COL+1,LIN-1:PRINT CHR$(143);:LOCATE COL+1,LIN:PRINT CHR$(143);:PEN 1
810 IF SC>HS THEN HS=SC
820 LOCATE 1,1:PRINT CHR$(18);:LOCATE 1,1:PRINT CHR$(24);"SCORE:";CHR$(24);MID$(STR$(SC),2);:PEN 2:PRINT"  EXOS:";:PEN 1:PRINT MID$(STR$(EX),2);:PEN 2:PRINT" HIGH SCORE:";:PEN 1:PRINT MID$(STR$(HS),2);:PEN 1
830 RETURN
840 SYMBOL AFTER 230
850 SYMBOL 231,0,0,0,0,0,0,16,255
860 SYMBOL 232,0,0,0,0,1,39,255,127
870 SYMBOL 233,0,0,0,0,128,230,255,254
880 SYMBOL 234,0,0,0,0,1,225,127,63
890 SYMBOL 235,0,24,60,63,255,255,255,255
900 SYMBOL 236,0,0,0,0,192,255,254,252
910 Q$=STRING$(32,32)
920 G$(1)=CHR$(231)+"     "
930 G$(2)=CHR$(232)+CHR$(233)+"    "
940 G$(3)=CHR$(234)+CHR$(235)+CHR$(236)+"   "
950 FOR X=4 TO 10:G$(X)="      ":NEXT X
960 RETURN