10 REM SUB-W.ECB 100 REM ===== LAST CORRECTED 06/26/77 R.E.H. 110 LET W=0: DIM S$(200),T$(15),U$(17),M$(18) 120 DATA " TORPEDOES AND "," TORPEDO SET TOO " 125 DATA " FRIEGHTER "," DESTROYER " 130 DATA " CRUISER "," BATTLESHIP " 135 DATA " AIRCRAFT CARRIER "," " 140 DATA " AIRCRAFT CARRIER "," " 145 DATA " "," SUBMARINE " 150 DATA 150,100,75,50,25,10 160 READ T$,U$ 170 FOR A=1 TO 10 180 READ M$: LET S$=S$+M$ 190 NEXT A 200 READ U(1),U(2),U(3),U(4),U(5),U(10) 210 PRINT TAB(15);"===========================" 220 PRINT TAB(15);"== S U B - W A R ==" 230 PRINT TAB(15);"===========================" 240 PRINT 250 PRINT " THE OBJECT OF THIS GAME IS TO GET 20 POINTS" 260 PRINT " BEFORE YOUR ENEMY DOES. YOU WILL BE GIVEN" 270 PRINT " TARGET SPEED, DISTANCE FROM INTERCEPT POINT," 280 PRINT " AND YOUR DISTANCE FROM INTERCEPT," 290 PRINT " ALL IN MULTIPLES OF 5" 300 PRINT 310 PRINT "*** TYPE IN SOMETHING TO SEE MORE ***"; 320 INPUT (1,0)I$ 330 PRINT 340 PRINT "YOU MUST DECIDE TORPEDO SPEED TO TARGET......" 350 PRINT "YOU GET 4 SUBS, EACH CONTAINING 4 TORPEDOS." 360 PRINT " TO CHOOSE TARGET, TYPE IN THE NO. OF" 370 PRINT " POINTS (1-5,10) YOU WISH TO TRY FOR. THE" 380 PRINT " HIGHTER THE POINT VALUE, THE HARDER THE" 390 PRINT " TARGET WILL BE TO HIT, AND THE MORE LIKELY" 400 PRINT " YOUR FORMER TARGET WILL SINK YOU IF MISSED." 410 PRINT 420 PRINT "*** TYPE IN SOMETHING TO SEE MORE ***"; 430 INPUT (1,0)I$ 440 PRINT 450 PRINT " THIS RESULTS IN THE LOSS OF" 460 PRINT " THAT SUB AND ITS REMAINING TORPEDOS." 470 FOR X=1 TO W 480 LET R=RND(0) 490 NEXT X 500 LET B=0: LET Y=0: LET G=0 510 LET A=16: LET Z=16 520 LET X=1 530 DIM K$(10),A(5),Z(5) 540 FOR N=1 TO 5 550 LET A(N)=4 560 LET Z(N)=4 570 NEXT N 580 PRINT 590 PRINT "TEAM #1" 600 PRINT "YOUR SCORE IS ";B;" YOU HAVE ";A;T$;A(5);" SUBS" 610 LET P=1 620 GOSUB 780 630 LET B=B+T 640 IF B>=20 THEN 1800 650 LET A=A(1)+A(2)+A(3)+A(4) 660 IF A=0 AND A(5)=0 THEN 1820 670 PRINT 680 PRINT "TEAM #2" 690 LET A=0 700 PRINT "YOUR SCORE IS ";Y;" YOU HAVE ";Z;T$;Z(5);" SUBS" 710 LET P=2 720 GOSUB 780 730 LET Y=Y+T 740 IF Y>=20 THEN 1820 750 LET Z=Z(1)+Z(2)+Z(3)+Z(4) 760 IF Z=0 AND Z(5)=0 THEN 1800 770 GOTO 580 780 REM ========== SUBROUTINE FOR MASTER PROGRAM ======= 790 PRINT " DO YOU WANT A STATUS REPORT ? "; 800 INPUT (1,0)I$ 810 IF I$="YES" THEN 830 815 IF I$="Y" THEN 830 820 GOTO 970 830 IF P=2 THEN 910 840 FOR N=1 TO 4 850 LET K$="SUNK" 860 IF A(N)=0 THEN 880 870 LET K$="OPERATIVE" 880 PRINT "SUB NO. ";N;" TORPEDOS LEFT =";A(N);" : STATUS ";K$ 890 NEXT N 900 GOTO 970 910 FOR N=1 TO 4 920 LET K$="SUNK" 930 IF Z(N)=0 THEN 950 940 LET K$="OPERATIVE" 950 PRINT "SUB NO. ";N;" TORPEDOS LEFT =";Z(N);" : STATUS ";K$ 960 NEXT N 970 PRINT 980 PRINT " ENTER TARGET (POINTS) ---> "; 990 INPUT T 1000 LET X=INT(4*(RND(0)))+1 1010 LET T=INT(T) 1020 IF P=2 THEN 1060 1030 IF A(X)=0 THEN 1000 1040 LET A(X)=A(X)-1 1050 GOTO 1080 1060 IF Z(X)=0 THEN 1000 1070 LET Z(X)=Z(X)-1 1080 PRINT 1090 IF T>0 AND T<6 OR T=10 THEN 1180 1100 FOR C=1 TO 10 1110 IF C>5 AND C<10 THEN 1130 1115 LET C9=C*18: LET C8=C9-17 1120 PRINT TAB(10);C;" POINTS FOR A ";S$(C8,C9) 1130 NEXT C 1140 PRINT 1150 PRINT TAB(10);"*** THESE ARE YOUR OPTIONS ***" 1160 PRINT 1170 GOTO 980 1180 LET C9=T*18: LET C8=C9-17 1185 PRINT " TARGET IS A ";S$(C8,C9) 1190 LET U=U(T) 1200 IF T<10 THEN 1250 1210 PRINT 1220 LET F=10*INT((10*RND(0))+1) 1230 PRINT " ENTER TORP DEPTH SETTING BETWEEN 10-100 "; 1235 INPUT H 1240 IF H>100 OR H<10 OR H<>INT(H) THEN 1230 1250 PRINT 1260 LET D=INT(1000*(RND(0))) 1270 IF D/5<>INT(D/5) THEN 1260 1280 LET E=INT(1000*RND(0)) 1290 IF E/5<>INT(E/5) THEN 1270 1300 LET S=INT(100*RND(0)) 1310 IF S/5<>INT(S/5) OR S=0 THEN 1290 1320 PRINT " TARGET DIST ";D;" YARDS, SPEED ";S;" YRD/SEC" 1330 PRINT "SUB #";X;" DIST ";E;" YARDS, ENTER TORPEDO SPEED "; 1340 INPUT Q 1350 PRINT 1360 IF T<>10 OR H=F THEN 1420 1365 IF H=F-10 OR H=F+10 THEN 1420 1370 IF H>F+10 THEN 1400 1380 PRINT U$;" SHALLOW, MISSED BY ";(F-10)-H;" FEET." 1390 GOTO 1410 1400 PRINT U$;" DEEP, MISSED BY ";H-(F+10);" FEET." 1410 LET H=101 1420 LET D=D-S 1430 LET E=E-Q 1440 IF D>0 THEN 1420 1450 LET D=D+(S*(E/Q)) 1460 PRINT 1470 IF H=101 OR D<-U OR D>U THEN 1500 1480 PRINT "TORPEDO HIT AND SUNK TARGET!" 1490 GOTO 1710 1500 LET G=ABS(ABS(D)-U) 1510 PRINT "TORPEDO MISSED TARGET BY ";G;" YARDS" 1520 IF T<>10 THEN 1540 1530 LET T=T-2 1540 IF F>(10*T) THEN 1690 1550 PRINT TAB(10);"YOU ARE NOW UNDER ATTACK," 1560 PRINT TAB(5);"HOW FAR UNDER ARE YOU (0-100) "; 1570 INPUT H 1580 IF H<0 OR H>100 THEN 1550 1590 LET F=10*(INT(10*(RND(0))+1)) 1600 IF ABS(F-H)>10 THEN 1690 1610 PRINT "TEAM #";P;", YOU HAVE JUST LOST SUB #";X 1620 IF P=2 THEN 1660 1630 LET A(X)=0 1640 LET A(5)=A(5)-1 1650 GOTO 1690 1660 LET Z(X)=0 1670 LET Z(5)=Z(5)-1 1680 GOTO 1700 1690 PRINT "CONGRATULATIONS YOU ESCAPED" 1700 LET T=0 1710 RETURN 1720 IF P=1 THEN 670 1730 IF B=Y THEN 1780 1740 IF Y>B THEN 1760 1750 LET P=1 1760 PRINT "GAME OVER, TEAM #";P;" WON BY ";ABS(B-Y);" POINTS" 1770 GOTO 1830 1780 PRINT "TIE GAME BOTH TEAMS HAVE ";Y;" POINTS" 1790 GOTO 1830 1800 PRINT "TEAM #2 SUNK! TEAM #1 WINS!" 1810 GOTO 1830 1820 PRINT "TEAM #1 SUNK! TEAM #2 WINS!" 1830 PRINT 1840 PRINT " DO YOU WANT TO PLAY AGAIN ? "; 1850 INPUT (1,0)I$ 1860 IF I$="Y" THEN 500 1870 REM ======= VARIBLES USED: A, B, D, E, F, G, H, N 1880 REM ======= VARIBLES USED: P, Q, S, T, U, W, X, Y, Z 1890 REM ======= VARIBLES USED: A( ), U( ), Z( ) 1900 REM ======= VARIBLES USED: I$, K$, S$, T$ S$( ) 1910 END