10 REM SUB-F.ECB 100 PRINT "&K&J&J": REM ............LAST MOD. 8-18-77 R.E.H 110 PRINT TAB(10);"/////////////////////////////////" 120 PRINT TAB(10);"/// S U B - F I G H T ///" 130 PRINT TAB(10);"/////////////////////////////////" 140 PRINT 150 PRINT " DO YOU WANT INSTRUCTIONS"; 160 INPUT (1,0)B$ 170 PRINT 180 IF B$="N" THEN 620 190 PRINT 200 PRINT 210 PRINT " THIS NAVAL WAR GAME IS PLAYED ON A 10X10 MATRIX." 220 PRINT " YOU ARE THE SUBMARINE; THE COMPUTER IS A CARGO" 230 PRINT " SHIP AND IT'S ESCORT, TWO DESTROYERS." 240 GOSUB 2740 250 PRINT " THE SHIP STARTS IN SQUARE 100 AND RANDOMLY" 260 PRINT " MOVES TO SQUARE 1, MOVING 0 TO 3 SQUARES AT A" 270 PRINT " TIME. ONE OF THE CARGO SHIP'S DESTROYERS" 280 PRINT " STARTS AT SQUARE 78 AND MOVE RANDOMLY 0 TO 3" 290 PRINT " SQUARES AT A TIME, LOOKING FOR THE SUBMARINE." 300 PRINT " THE OTHER DESTROYER REMAINS WITHIN ONE SQUARE OF" 310 PRINT " THE CARGO VESSEL AS AN ESCORT." 320 GOSUB 2740 330 PRINT " THE SUB STARTS IN SQUARE 1 AND CAN MOVE UP," 340 PRINT " DOWN, LEFT, OR RIGHT ONE SQUARE AT A TIME," 350 PRINT " 2 MOVES TO A TURN. THE SUB HAS 4 TORPEDOES" 360 PRINT " WHICH IT CAN FIRE AT THE ENEMY, ONE AT A TIME," 370 PRINT " IN ANY STRAIGHT LINE. AFTER EACH MOVE" 380 PRINT " BY THE SUBMARINE, THE PERISCOPE WILL SEARCH" 390 PRINT " SEARCH EACH ADJACENT SQUARE FOR THE SHIP." 400 PRINT " ALSO, RANDOM RECONNAISANCE WILL BE" 410 PRINT " MADE PERIODICALLY." 420 GOSUB 2740 430 PRINT 440 PRINT " THE SEQUENCE OF PLAY IS:" 450 PRINT 460 PRINT TAB(15);"1: SHIP AND DESTOYERS MOVE" 470 PRINT TAB(15);"2: SUBMARINE MOVES" 480 PRINT TAB(15);"3: SUBMARINE MAY FIRE A TORPEDOE" 490 PRINT TAB(15);"4: PERISCOPE SEARCH" 500 PRINT TAB(15);"5: SUBMARINE'S MOVE AGAIN" 510 PRINT " RETURN TO STEP 1" 520 PRINT 530 GOSUB 2740 540 PRINT " THE SUBMARINE WINS IF IT SUCCEEDS IN DESTROYING" 550 PRINT " THE CARGO SHIP USING ONE OF IT'S FOUR" 560 PRINT " TORPEDOES, WITHOUT MOVING INTO A SQUARE" 570 PRINT " OCCUPIED BY A DESTROYER." 580 PRINT 590 PRINT " TO 'FIRE' ANSWER:" 600 PRINT TAB(15);" NO, L, R, U, LU, LD, RU, OR RD." 610 PRINT 620 PRINT " DO YOU WANT A PLAYING SURFACE"; 630 INPUT (1,0)B$ 640 IF B$="N" THEN 750 650 PRINT 660 PRINT 670 PRINT " 01 02 03 04 05 06 07 08 09 10" 680 FOR I=1 TO 9 690 FOR J=1 TO 10 700 PRINT I*10+J;" "; 710 NEXT J 720 PRINT 730 NEXT I 740 GOSUB 2750 750 PRINT 760 PRINT 770 LET D=12 780 LET T=4 790 LET S=100 800 LET C=78 810 LET C2=78 820 LET L=100 830 IF C=-100 THEN 880 840 GOTO 3420 850 LET Y3=0 860 LET M1=0 870 GOTO 910 880 LET M1=0 890 IF S=2 THEN 1560 900 LET Y3=1 910 IF S=3 THEN 1560 920 IF S=11 THEN 1560 930 IF S=12 THEN 1560 940 IF S=21 THEN 1560 950 LET X=RND(0) 960 IF X>.4 THEN 1020 970 IF X>.2 THEN 1040 980 IF X>.05 THEN 1000 990 GOTO 1340 1000 LET S1=0 1010 GOTO 1050 1020 LET S1=2 1030 GOTO 1050 1040 LET S1=1 1050 LET X=RND(0) 1060 IF X<.75 THEN 1090 1070 LET P1=1 1080 GOTO 1150 1090 LET P1=-1 1100 IF S=10*INT(S/10) THEN 1140 1110 GOTO 1180 1120 IF S=1+(10*INT(S/10)) THEN 1140 1130 GOTO 1180 1140 LET P1=P1*(-1) 1150 LET M2=P1*((INT(2*(RND(0)))*9)+1) 1160 IF M2=1 THEN 1100 1170 IF M2=-1 THEN 1120 1180 IF M1=M2*(-1) THEN 1140 1190 LET C1=S+M2 1200 IF C1=1 THEN 1560 1210 IF C1=D THEN 3270 1220 IF C1=C THEN 1140 1230 IF C1<1 THEN 1140 1240 IF C1>100 THEN 1140 1250 LET M1=M2 1260 LET S=C1 1270 LET C6=S+((INT(2*RND(0))*(-2))+1)*((INT(2*RND(0))*9)+1) 1280 IF C6<2 THEN 1270 1290 IF C6>100 THEN 1270 1300 IF C6=D THEN 3230 1310 IF S1=1 THEN 1000 1320 IF S1=2 THEN 1040 1330 LET C3=0 1340 PRINT " TARGET VESSEL HAS MOVED." 1350 IF Y3=0 THEN 1380 1360 LET X1=0 1370 GOTO 2790 1380 PRINT 1390 LET X1=1 1400 PRINT 1410 PRINT " SUBMARINE AT ";D;"." 1420 PRINT " SHIP'S LAST REPORTED POSISTION: ";L 1430 PRINT " DO YOU WISH TO FIRE A TORPEDOE ---=>"; 1440 INPUT (2,0)A$ 1450 IF A$="NO" THEN 2120 1455 IF A$="N" THEN 2120 1460 IF A$="L" THEN 1580 1470 IF A$="R" THEN 1600 1480 IF A$="U" THEN 1620 1490 IF A$="D" THEN 1640 1500 IF A$="LU" THEN 1660 1510 IF A$="LD" THEN 1680 1520 IF A$="RU" THEN 1700 1530 IF A$="RD" THEN 1720 1540 PRINT " ANSWER: NO,L,R,U,D,LU,LD,RU, OR RD" 1550 GOTO 1430 1560 PRINT " SHIP IS IN PORT" 1570 GOTO 3300 1580 LET P1=-1 1590 GOTO 1730 1600 LET P1=1 1610 GOTO 1730 1620 LET P1=-10 1630 GOTO 1730 1640 LET P1=10 1650 GOTO 1730 1660 LET P1=-11 1670 GOTO 1730 1680 LET P1=9 1690 GOTO 1730 1700 LET P1=-9 1710 GOTO 1730 1720 LET P1=11 1730 LET D1=D 1740 LET D1=D1+P1 1750 PRINT D1; 1760 IF D1=S THEN 1830 1770 IF D1=C THEN 1900 1780 IF D1<11 THEN 2000 1790 IF D1>90 THEN 2040 1800 IF D1=10*INT(D1/10) THEN 1960 1810 IF D1=1+(10*INT(D1/10)) THEN 1980 1820 GOTO 1740 1830 PRINT " ****** KER-BLAM !!! ******" 1840 PRINT 1850 PRINT TAB(8);" CARGO SHIP DESTROYED!!!" 1860 PRINT "&J MISSION ACCOMPLISHED.&J" 1870 PRINT TAB(8);"YOU WIN !!!!!" 1880 LET Q=1 1890 GOTO 3300 1900 PRINT " ******** WHAMMO !! ********" 1910 PRINT 1920 PRINT TAB(7);" DESTROYER SUNK !!" 1930 LET C=-100 1940 LET T=T-1 1950 GOTO 2100 1960 IF D=10*INT(D/10) THEN 1740 1970 GOTO 2080 1980 IF D=1+(10*INT(D/10)) THEN 1740 1990 GOTO 2080 2000 IF D>10 THEN 2080 2010 IF D1<2 THEN 2080 2020 PRINT " YOU MISSED." 2030 GOTO 1740 2040 IF D<91 THEN 2080 2050 IF D1<92 THEN 2080 2060 IF D1>99 THEN 2080 2070 GOTO 1740 2080 LET T=T-1 2090 IF T=0 THEN 3290 2100 PRINT T;" TORPEDOES LEFT." 2110 GOTO 1430 2120 PRINT 2130 LET Y=0 2140 PRINT 2150 PRINT " UP PERISCOPE" 2160 LET Y2=0 2170 IF S=D THEN 2330 2180 IF S=D-1 THEN 2330 2190 IF S=D+1 THEN 2330 2200 IF S=D-10 THEN 2330 2210 IF S=D+10 THEN 2330 2220 IF S=D-9 THEN 2330 2230 IF S=D+9 THEN 2330 2240 IF S=D-11 THEN 2330 2250 IF S=D+11 THEN 2330 2260 IF Y=1 THEN 2360 2270 PRINT " PERISCOPE SEARCH REPORTS SHIP NOT IN SIGHT." 2280 LET X=RND(0) 2290 IF X<.35 THEN 2360 2300 PRINT 2310 PRINT " RECON INDICATES "; 2320 LET Y2=-1 2330 PRINT " TARGET VESSEL AT ";S 2340 LET Y2=Y2+1 2350 LET L=S 2360 IF C=D THEN 2680 2370 IF C6=D THEN 3230 2380 IF C=D+1 THEN 2660 2390 IF C6=D+1 THEN 2640 2400 IF C=D-1 THEN 2660 2410 IF C6=D-1 THEN 2640 2420 IF C=D+9 THEN 2660 2430 IF C6=D+9 THEN 2640 2440 IF C=D-9 THEN 2660 2450 IF C6=D-9 THEN 2640 2460 IF C=D+10 THEN 2660 2470 IF C6=D+10 THEN 2640 2480 IF C=D-10 THEN 2660 2490 IF C6=D-10 THEN 2640 2500 IF C=D+11 THEN 2660 2510 IF C6=D+11 THEN 2640 2520 IF C=D-11 THEN 2660 2530 IF C6=D-11 THEN 2640 2540 IF C=D+2 THEN 2660 2550 IF C=D-2 THEN 2660 2560 IF C=D+20 THEN 2660 2570 IF C=D-20 THEN 2660 2580 IF C=-100 THEN 2720 2590 IF Y=1 THEN 2730 2600 LET X=RND(0) 2610 IF X<.6 THEN 2720 2620 PRINT " RECON PLANE HAS SPOTTED TIN CAN AT ";C 2630 GOTO 2700 2640 PRINT " CARGO VESSEL ESCORT VERY NEAR." 2650 GOTO 2720 2660 PRINT " DESTROYER CLOSING AT ";C;"." 2670 GOTO 2700 2680 PRINT " DESTROYER DIRECTLY OVERHEAD." 2690 GOTO 3150 2700 LET C2=C 2710 LET C3=1 2720 IF Y=0 THEN 2790 2730 RETURN 2740 PRINT 2750 PRINT " === READY TO SEE MORE ? ===> "; 2760 INPUT (1,200)I$ 2770 PRINT 2780 RETURN 2790 PRINT 2800 PRINT " SUBMARINE IS NOW AT ";D;"." 2810 IF C3=1 THEN 2840 2820 IF C=-100 THEN 2840 2830 PRINT " DESTROYER'S LAST SIGHTING AT ";C2;"." 2840 LET D2=0 2850 PRINT 2860 PRINT " SUBMARINE'S MOVE"; 2870 LET Y=1 2880 INPUT X 2890 REM ...IF X=DAT THEN 1430 2900 REM ...IF X=DAT+1 THEN 3750 2910 IF X=123 THEN 3720 2920 IF X=D THEN 3050 2930 IF X<2 THEN 3130 2940 IF X>100 THEN 3130 2950 IF X=INT(X) THEN 2970 2960 GOTO 3130 2970 IF X=D+1 THEN 3020 2980 IF X=D-1 THEN 3040 2990 IF X=D+10 THEN 3050 3000 IF X=D-10 THEN 3050 3010 GOTO 3130 3020 IF D=10*INT(D/10) THEN 3130 3030 GOTO 3050 3040 IF X=10*INT(X/10) THEN 3130 3050 LET D=X 3060 GOSUB 2160 3070 IF D2=1 THEN 3100 3080 LET D2=1 3090 GOTO 2860 3100 IF X1=0 THEN 3700 3110 IF C=-100 THEN 880 3120 GOTO 3420 3130 PRINT " CANNOT COMPLY" 3140 GOTO 2850 3150 LET X=RND(0) 3160 IF X<.8 THEN 3230 3170 PRINT " SUBMARINE NOW UNDER DEPTH CHARGE ATTACK BY" 3180 PRINT TAB(15);"*** ESCORT DESTROYER ***" 3190 PRINT " +++++++ B L A A A A M !!! ++++++" 3200 PRINT 3210 PRINT TAB(6);"DEPTH CHARGE JUST MISSED." 3220 GOTO 2700 3230 PRINT " +++++++ V A A R R O O M !!! ++++++" 3240 PRINT 3250 PRINT TAB(6);"SUBMARINE JUST DEPTH CHARGED." 3260 GOTO 3300 3270 PRINT " CARGO SHIP NOW OVERHEAD." 3280 GOTO 880 3290 PRINT " SUBMARINE'S TORPEDOES NOW EXPENDED." 3300 PRINT 3310 IF Q=0 THEN 3340 3320 LET Q1=Q1+1 3330 GOTO 3350 3340 LET Q2=Q2+1 3350 PRINT " SCORE: COMPUTER ";Q2;"- SUBMARINE ";Q1 3360 PRINT 3370 LET Q=0 3380 PRINT " DO YOU WISH TO TRY AGAIN"; 3390 INPUT (1,100)N$ 3400 IF A$="N" THEN 3770 3410 GOTO 750 3420 LET M1=0 3430 LET S1=0 3440 LET X=RND(0) 3450 IF X<.6 THEN 3480 3460 LET P1=1 3470 GOTO 3490 3480 LET P1=-1 3490 LET M2=P1*((INT(2*(RND(0)))*9)+1) 3500 IF M2=1 THEN 3640 3510 IF M2=-1 THEN 3660 3520 IF M1=M2*(-1) THEN 3680 3530 LET C1=C+M2 3540 IF C1=D THEN 3230 3550 IF C1=S THEN 3680 3560 IF C1<2 THEN 3680 3570 IF C1>100 THEN 3680 3580 LET M1=M2 3590 LET C=C1 3600 IF S1=1 THEN 880 3610 LET S1=1 3620 PRINT " DESTROYER HAS MOVED." 3630 GOTO 3440 3640 IF C=10*INT(C/10) THEN 3680 3650 GOTO 3520 3660 IF C=1+(10*INT(C/10)) THEN 3680 3670 GOTO 3520 3680 LET P1=P1*(-1) 3690 GOTO 3490 3700 IF Y2=0 THEN 1380 3710 GOTO 850 3720 INPUT Z 3730 LET D=Z 3740 GOTO 2790 3750 PRINT S 3760 GOTO 2850 3770 PRINT 3780 PRINT 3790 PRINT 3800 PRINT 3810 PRINT " YA-VOL! MEIN KAPITAIN." 3820 PRINT " AFVEDERZAIN!" 3830 PRINT " GOODBYE, YAAL!" 3840 END