20 SUB SUBFIL 30 COMMON (A1) !MAP ARRAYS & A(18,22), F(18,22) !CURRENT AND OLD POSITIONS & , D(9) !DAMAGE & , S(9),SD(9) !STATUS & , AZ(8) !AZIMUTH INFO 40 COMMON (A2) !VARIABLES AND COUNTERS & IND !FUNCTION INDICATOR & ! 1=RESTART, 2=INST, 3=REPAINT, 4=START & , Z1,ZOLD !TURN COUNTER & , P,POLD !POWER & , D,DOLD !DEPTH & , S1,S2 !SUBMARINE COORDINATES & , S3,S4, S5,S6 !HEADQUARTERS COORDINATES & , Q5 !DIFFICULTY & , Q6 !ISLAND CUTS COUNTER & , S,S7 !SHIP COUNTERS & , C !CREW & , F !FUEL & , D2 !REARM COUNTER & , T,M !TORPEDO & MISSLE COUNTERS & , D8,D9 !UNIT VECTOR FOR SHIPS & , M1,M2 !UNIT VECTOR FOR HAZZARDS & , RNG !DEPTH CHARGE RANGE & , N$ !CAPTAIN`S NAME 50 ON ERROR GOTO 140 100 E$=CHR$(155%) 105 DIM SCORE(21),NAME$(21),DTE$(21) 110 SCORE(21)=ABS(INT(Q5*(1-S/S7)*(S7/((Z1/3)+50)))) 111 IF Q5>0 THEN 120 116 SLEEP 15% 117 PRINT\PRINT E$;"#6 APRIL FOOL ! ! ";N$ 118 PRINT "YOUR REAL SCORE IS "; 119 SCORE(21)=SCORE(21)/1.4\PRINT SCORE(21) 120 OPEN "GAMES:SUB.DAT" AS FILE #1 121 FOR I = 1 TO 20 122 INPUT #1,SCORE(I) 123 LINPUT #1,NAME$(I) 124 LINPUT #1,DTE$(I) 125 NEXT I 126 DTE$(21)=DATE$(0%)\PRINT E$;"[21;24r";E$;"[19;1f";E$;"[J"; 127 PRINT "HIGHEST SCORES TO DATE ARE:" 128 CLOSE 1% & \ OPEN "GAMES:SUB.DAT" AS FILE 1% 129 K=1 !DATA POINTER 130 FOR I=1 TO 20 131 IF (SCORE(K)>=SCORE(21)) THEN PRINT #1,SCORE(K)\PRINT I;".";SCORE(K), & \ PRINT #1,NAME$(K)\PRINT NAME$(K), & \ PRINT #1,DTE$(K)\PRINT DTE$(K) & \ K=K+1 !ADVANCE POINTER & ELSE PRINT #1,SCORE(21)\PRINT I;".";SCORE(21), !ADD THIS GAME TO FILE & \ PRINT #1,N$\PRINT N$;, & \ PRINT #1,DTE$(21)\PRINT DTE$(21) & \ SCORE(21)=0 !DON`T PRINT AGAIN & \ PRINT "";\SLEEP 2% !RING BELL AND WAIT 132 NEXT I 135 CLOSE #1 136 GOTO 159 140 IF ERL=120 THEN PRINT "";\SLEEP 1%\RESUME 120 141 IF ERL=122 THEN RESUME 126 159 PRINT "WANT ANOTHER GAME"; 160 SUBEND