10 REM - FOOTBALL - 20 REM GENERATE A STRING OF LINE FEEDS 30 D$="" 40 FOR I=1 TO 12 50 D$=D$+CHR$(10)+CHR$(32) 60 NEXT I 70 REM - REWRITTEN ON 8/77 - 80 DIM S(3) 90 REM-----BRANCH AROUND SCREEN CLEAR LOOP 100 GO TO 170 110 REM-----THESE NEXT 4 LINES CLEAR THE SCREEN 120 FOR E=1 TO 23 130 PRINT 140 NEXT E 150 RETURN 160 REM-----CLEAR THE SCREEN 170 GOSUB 120 180 PRINT ' *****PDP 11/45 FOOTBALL******' 190 PRINT 200 PRINT 210 PRINT 220 RANDOMIZE 230 Y2=(6*RND)^2+RND^2*25 240 X=0 250 D=1 260 REM-----GO FIND OUT WHO'S PLAYING AND WHAT MODE. 270 GO TO 5270 280 DEF FNA(X)=8*A*(RND-.5)^3+B 290 GO TO 370 300 PRINT ' CALL PLAYS AS FOLLOWS:' 310 PRINT ' 1=SIMPLE RUN 2=TRICKY RUN 3=SHORT PASS '; 320 PRINT '4=SCREEN PASS' 330 PRINT ' 5=LONG PASS 6=PUNT 7=QUICK KICK '; 340 PRINT '8=F. G. ATTEMPT' 350 PRINT 360 RETURN 370 REM LOGIC FOR THIS PLAY T=TIME EXPIRED 380 T=T+RND 390 IF T<30 GO TO 420 400 IF H2=4 GO TO 4260 410 GO TO 3810 420 IF T>=28 GO TO 480 430 IF H7-T>0 GO TO 540 440 T=15 450 H7=30 460 H2=H2+1 470 GO TO 540 480 IF H1=1 GO TO 540 490 GOSUB 4530 500 GOSUB 4840 510 PRINT TAB(15);'----TWO MINUTE WARNING----' 520 H1=1 530 T=28 540 GOSUB 4570 550 F=0 560 GO TO 2890 570 A=20 580 B=0 590 X=FNA(X) 600 GOSUB 4840 610 PRINT 'KICKOFF. . . '; 620 GOSUB 4530 630 K=1 640 Y=0 650 F=-1 660 Z=8 670 X6=50 680 GOSUB 4890 690 GOSUB 4870 700 K=0 710 IF X>0 GO TO 780 720 PRINT 730 PRINT 'FAIR CATCH CALLED. TOUCHBACK.' 740 X6=20 750 X=20 760 GOSUB 4890 770 GO TO 2710 780 GOSUB 4360 790 GO TO 2320 800 REM LOGIC FOR TEAM B CALLING A PLAY 810 REM MISCALLED PLAY 820 PRINT SEG$(D$,1,8);'MISCALLED PLAY. CALL PLAY AGAIN.' 830 IF G=3 GO TO 3250 840 PRINT SEG$(D$,1,12) 850 GOSUB 300 860 IF P=1 GO TO 890 870 PRINT A$ 880 GO TO 900 890 PRINT B$;'''S BALL. NEXT PLAY' 900 INPUT L 910 Z=ABS(INT(L)) 920 IF Z=0 GO TO 810 \ IF Z>8 GO TO 810 930 R=RND 940 REM DETERMINE TYPE OF PLAY 950 PRINT SEG$(D$,1,8) 960 IF RND>.05 GO TO 1070 970 IF RND>.6 GO TO 1020 980 Q=-10 990 GOSUB 4390 1000 PRINT ' HOLDING '; 1010 GO TO 1050 1020 Q=-5 1030 GOSUB 4390 1040 PRINT ' OFF SIDES '; 1050 Y=Q 1060 GO TO 2580 1070 IF Z>5 GO TO 1680 1080 IF Z<3 GO TO 1120 1090 IF Z=4 GO TO 5970 1100 IF Z=3 GO TO 1340 1110 GO TO 1600 1120 REM LOGIC FOR RUN 1130 IF Z<>1 GO TO 1200 1140 PRINT 'RUN'; 1150 A=4.1 1160 B=3 1170 Y=FNA(X) 1180 IF RND<.05 GO TO 1250 1190 GO TO 2560 1200 PRINT 'TRICKY RUN '; 1210 A=15 1220 B=6 1230 Y=FNA(X)-(RND*3.6) 1240 IF RND>.15 GO TO 2560 1250 PRINT '***FUMBLE***' 1260 IF RND>.5 GO TO 1310 1270 PRINT 'BALL LOST AFTER '; 1280 GOSUB 4360 1290 F=-1 1300 GO TO 2560 1310 PRINT ' BALL RECOVERED WITH '; 1320 GO TO 2560 1330 REM LOGIC FOR SHORT PASS 1340 PRINT 'SHORT PASS' 1350 IF RND>.3 GO TO 1380 1360 IF RND>.15 GO TO 1560 1370 GO TO 1530 1380 A=5 1390 B=8 1400 Y=FNA(X)-4*RND 1410 IF RND>.15 THEN GO TO 2560 1420 IF Y<0 THEN GO TO 2560 1430 F=-1 1440 X6=X 1450 X=X+Y 1460 GOSUB 4890 1470 PRINT 'INTERCEPTED' 1480 IF X<100 GO TO 1510 1490 PRINT 'IN THE ENDZONE. ' 1500 X=80 1510 GOSUB 4360 1520 GO TO 2710 1530 PRINT 'BLITZ PASSER TACKLED.' 1540 Y=-13*R 1550 GO TO 2560 1560 PRINT ' INCOMPLETE ' 1570 Y=0 1580 GO TO 2560 1590 REM LOGIC FOR LONG PASS 1600 PRINT 'LONG PASS' 1610 IF RND<.15 GO TO 1530 1620 IF RND<.6 GO TO 1560 1630 A=20 1640 B=30 1650 Y=FNA(X)-20*RND 1660 IF RND<.3 GO TO 1430 1670 GO TO 2560 1680 REM LOGIC FOR KICK 1690 IF D=4 GO TO 1710 1700 IF Z=6 GO TO 1730 1710 Y2=(6*RND)^2+RND^2*25 1720 GO TO 1740 1730 Y2=(5*RND)^2+2*RND 1740 F=-1 1750 K=1 1760 ON Z-5 GO TO 1770,1800,1830 1770 A=15 1780 B=45 1790 GO TO 1850 1800 A=20 1810 B=30 1820 GO TO 1850 1830 A=20 1840 B=35 1850 Y=FNA(X) 1860 IF Z=8 GO TO 2440 1870 PRINT 'PUNT' 1880 IF RND>.92 GO TO 2460 1890 IF X+Y>=100 GO TO 1920 1900 IF RND<.7 GO TO 2030 1910 PRINT ' FAIR CATCH CALLED. ' 1920 X6=X 1930 X=X+Y 1940 GOSUB 4890 1950 PRINT 1960 PRINT ' GOOD FOR ';INT(Y*10)/10;'YARDS' 1970 IF X<100 GO TO 2000 1980 PRINT 'TOUCHBACK '; 1990 X=80 2000 GOSUB 4360 2010 K=0 2020 GO TO 2710 2030 X6=X 2040 X=X+Y 2050 GOSUB 4890 2060 PRINT 2070 PRINT ' GOOD FOR ';INT(Y*10)/10;'YARDS' 2080 GOSUB 4870 2090 IF Z<>5 GO TO 2120 2100 PRINT 'GOOD FOR ';INT(Y) 2110 GOSUB 4530 2120 K=0 2130 GOSUB 4360 2140 X6=X 2150 X=X+Y2 2160 GOSUB 4890 2170 PRINT 2180 IF X>=100 GO TO 3070 2190 PRINT 'RUNBACK OF ';INT(Y2);' YARDS.' 2200 GO TO 2710 2210 IF RND<.25GO TO 2400 2220 F$='***FIELD GOAL***' 2230 I9=2 2240 X=0 2250 GOSUB 4730 2260 I=3 2270 GOSUB 4330 2280 GOSUB 4360 2290 GO TO 570 2300 GOSUB 4870 2310 PRINT 'SHORT. '; 2320 PRINT 'BALL TAKEN ON THE'; 2330 IF INT(100-X)=0 GO TO 2370 2340 PRINT INT(100-X) 2350 GOSUB 5940 2360 GO TO 2390 2370 PRINT ' GOAL LINE '; 2380 GOSUB 5940 2390 GO TO 2120 2400 GOSUB 4360 2410 PRINT 'MISSED. ' 2420 K=0 2430 GO TO 740 2440 PRINT ' PLACEKICK' 2450 IF RND>=.15 GO TO 2500 2460 PRINT 'BLOCKED' 2470 Y=-RND*15 2480 F=0 2490 GO TO 2560 2500 X6=X 2510 X=X+Y 2520 GOSUB 4890 2530 IF X<100 GO TO 2300 2540 IF X<105 GO TO 2400 2550 GO TO 2210 2560 GOSUB 4530 2570 REM CALCULATE GAIN OR LOSS 2580 X6=X 2590 X=X+Y 2600 GOSUB 4890 2610 IF Y=0 GO TO 2650 2620 IF Y<0 GO TO 2670 2630 PRINT ' GAIN OF ';INT(Y*10)/10 2640 GO TO 2700 2650 PRINT ' NO GAIN ' 2660 GO TO 2700 2670 PRINT ' LOSS OF ';ABS(INT(Y*10)/10) 2680 IF X<=0 GO TO 2990 2690 GO TO 2710 2700 IF X>=100 GO TO 3070 2710 IF F=0 GO TO 2750 2720 X6=X 2730 GOSUB 4890 2740 GO TO 2910 2750 X2=X-X1 2760 IF X2>10 GO TO 2910 2770 D=D+1 2780 IF D<=4 GO TO 2880 2790 GOSUB 4360 2800 GOSUB 4530 2810 GOSUB 4840 2820 PRINT TAB(15);' FOURTH DOWN ATTEMPT IS NO GOOD!!!!' 2830 PRINT 2840 F=-1 2850 GOSUB 4530 2860 GO TO 2710 2870 REM END OF DOWN 2880 GO TO 380 2890 IF P=1 GO TO 830 2900 GO TO 3240 2910 D=1 2920 X2=0 2930 IF X<=90 GO TO 2960 2940 X1=90 2950 GO TO 380 2960 X1=X 2970 GO TO 380 2980 REM SCORE CALCULATIONS 2990 F$='***SAFETY***' 3000 I9=1 3010 X=0 3020 GOSUB 4730 3030 I=2 3040 P=-P 3050 GOSUB 4330 3060 GO TO 570 3070 REM 3080 F$='****TOUCHDOWN****' 3090 I9=3 3100 X=0 3110 GOSUB 4730 3120 I=6 3130 GOSUB 4330 3140 IF RND<.5 GO TO 3190 3150 PRINT 'KICK IS GOOD. ' 3160 I=1 3170 GOSUB 4330 3180 GO TO 3200 3190 PRINT 'CONVERSION FAILS' 3200 GOSUB 4360 3210 GOSUB 4530 3220 GO TO 570 3230 REM NEXT PLAY FOR TEAM A 3240 IF G=2 GO TO 840 3250 FOR E=1 TO 500 3260 NEXT E 3270 REM X=CUR. YD., X1=ST. YD., X2=YD TO GO, D=DOWN 3280 PRINT SEG$(D$,1,12) 3290 IF P=1 GO TO 3320 3300 PRINT A$;"'S BALL" 3310 GO TO 3330 3320 PRINT B$;"'S BALL" 3330 PRINT 3340 X2=10-X+X1 3350 R=RND 3360 IF D=4 GO TO 3590 3370 IF X2<1 GO TO 3630 3380 IF X<90 GO TO 3420 3390 IF X>95 GO TO 3630 3400 IF RND>.6 GO TO 3630 3410 GO TO 3650 3420 IF X2<2 GO TO 3400 3430 IF D=3 GO TO 3480 3440 IF RND<.2 GO TO 3730 3450 IF RND<.65 GO TO 3680 3460 IF RND<.75 GO TO 3650 3470 GO TO 3630 3480 IF X2<15 GO TO 3550 3490 IF X<45 GO TO 3520 3500 IF RND>.8 GO TO 3770 3510 REM LONG PASS OR RUN 3520 IF RND<.3 GO TO 3650 3530 IF RND<.6 GO TO 3680 3540 GO TO 3730 3550 IF X<5 THEN GO TO 3630 3560 IF RND>.6 THEN GO TO 3630 3570 IF RND>.1 GO TO 3650 3580 GO TO 3680 3590 IF T<=55 GO TO 3610 3600 IF S(1)>S(3)+3 GO TO 3680 3610 IF X<=60 GO TO 3750 3620 GO TO 3790 3630 Z=1 3640 GO TO 930 3650 IF X<=20 GO TO 3630 3660 Z=2 3670 GO TO 930 3680 IF RND>.5 GO TO 3710 3690 Z=4 3700 GO TO 930 3710 Z=3 3720 GO TO 930 3730 Z=5 3740 GO TO 930 3750 Z=6 3760 GO TO 930 3770 Z=7 3780 GO TO 930 3790 Z=8 3800 GO TO 930 3810 GOSUB 4530 3820 T=30 3830 D=1 3840 X2=0 3850 GOSUB 4570 3860 F$='HALFTIME' 3870 I9=1 3880 GOSUB 4730 3890 P=-H 3900 IF P=1 GO TO 3930 3910 PRINT A$ 3920 GO TO 3940 3930 PRINT B$; 3940 PRINT ' WILL RECEIVE THE SECOND HALF' 3950 PRINT 3960 PRINT 3970 PRINT 3980 GOSUB 5940 3990 PRINT 'THE PUNCH-HARD ALL GIRLS BAND' 4000 GOSUB 4530 4010 PRINT 4020 PRINT TAB(30);'WILL DAZZLE YOU' 4030 GOSUB 4530 4040 PRINT 4050 PRINT 4060 PRINT ' WITH THEIR FOOTWORK' 4070 GOSUB 4530 4080 PRINT 4090 PRINT TAB(30);'AND THEIR MEDIOCRE PLAYING.....' 4100 GOSUB 5940 4110 FOR I=1 TO 35 4120 PRINT TAB(RND*64);' ^ '; 4130 FOR J=1 TO 50 4140 NEXT J 4150 NEXT I 4160 FOR I=1 TO 16 4170 PRINT 4180 NEXT I 4190 H2=3 4200 H1=0 4210 H=0 4220 T=0 4230 H7=15 4240 GOSUB 4570 4250 GO TO 570 4260 GOSUB 4530 4270 T=30 4280 GOSUB 4570 4290 PRINT TAB(15);'*****************************' 4300 PRINT TAB(15);'******* FINAL SCORE *********' 4310 PRINT TAB(15);'*****************************' 4320 STOP 4330 S(2-P)=S(2-P)+I 4340 GOSUB 4570 4350 RETURN 4360 P=-P 4370 X=100-X 4380 RETURN 4390 PRINT ' ****PENALTY****' 4400 D=D-1 4410 IF RND<.5 GO TO 4470 4420 PRINT ' OFFENSIVE '; 4430 GOSUB 4530 4440 IF X>ABS(Q) GO TO 4520 4450 Q=-X/2 4460 RETURN 4470 PRINT ' DEFENSIVE '; 4480 GOSUB 4530 4490 Q=-1*Q 4500 IF 100-X>Q GO TO 4520 4510 Q=(100-X)/2 4520 RETURN 4530 FOR E=1 TO 250 4540 NEXT E 4550 RETURN 4560 '<<<<<<<<<<<<<<<',"'CCCCCCCCCCCCCCCCCCC",'>>>>>>>>>>>>>>' 4570 PRINT 4580 GOSUB 5940 4590 PRINT 4600 PRINT TAB(10);'BALL ON '; 4610 IF X>50 GO TO 4640 4620 PRINT 'YOUR ';INT(X*10)/10;'YARD LINE' 4630 GO TO 4650 4640 PRINT 'OPPONENTS ';INT((100-X)*10)/10;'YARD LINE' 4650 IF X<0 GO TO 2990 4660 PRINT '<<<<<<<<<<<<<>>>>>>>>>>>>>' 4670 PRINT A$,S(3),B$,S(1) 4680 PRINT ' DOWN YDS. TO GO PERIOD TIME ' 4690 PRINT D,10-X2,H2,INT(H7-T)+.6*(H7-T-INT(H7-T)) 4700 PRINT '<<<<<<<<<<********SCOREBOARD********>>>>>>>>>>>' 4710 PRINT 4720 RETURN 4730 REM DESPLAY SCORE 4740 PRINT SEG$(D$,1,3) 4750 FOR I7=1 TO I9 4760 REM 4770 FOR I8=1 TO 30 4780 PRINT TAB(I8);F$ 4790 NEXT I8 4800 FOR I8=30 TO 1 STEP -1 4810 PRINT TAB(I8);F$ 4820 NEXT I8 4830 NEXT I7 4840 PRINT SEG$(D$,1,8) 4850 PRINT 4860 RETURN 4870 PRINT SEG$(D$,1,11) 4880 RETURN 4890 PRINT SEG$(D$,1,9) 4900 IF INT(X)=INT(X6) GO TO 4950 4910 IF X>X6 GO TO 4940 4920 X6=X6-1-K 4930 GO TO 4950 4940 X6=X6+1+K 4950 IF P=-1 GO TO 4990 4960 X3=100-X6 4970 IF X6>=50 GO TO 5040 4980 GO TO 5010 4990 X3=X6 5000 IF X6<=50 GO TO 5040 5010 PRINT 5020 X3=X3-50 5030 GO TO 5050 5040 REM 5050 REM 5060 PRINT TAB(X3+10); 5070 IF K=0 GO TO 5140 5080 PRINT '0' 5090 IF Y<0 THEN IF P=1 THEN GO TO 5120 5100 IF X6>50 THEN GO TO 5130 5110 IF P=1 THEN GO TO 5130 5120 REM 5130 GO TO 5180 5140 IF P=-1 GO TO 5170 5150 PRINT '<0' 5160 GO TO 5180 5170 PRINT '0>' 5180 IF INT(X)=INT(X6) GO TO 5240 5190 IF INT(X)=INT(X6)+1 GO TO 5240 5200 IF X3<0 GO TO 5240 5210 IF X3>50 GO TO 5240 5220 REM 5230 GO TO 4910 5240 PRINT TAB(43); 5250 RETURN 5260 REM----FIRST CLEAR THE SCREEN 5270 GOSUB 120 5280 REM-----PRINT THE SET-UP PROCEDURE. 5290 PRINT ,'SET-UP PROCEDURE' 5300 PRINT 5310 PRINT 5320 REM-----A$ IS ONE PLAYER'S NAME 5330 REM-----B$ IS ANOTHER PLAYER'S NAME 5340 PRINT 5350 PRINT 'PLEASE INPUT OPPONENT''S NAME IN QUOTES'; 5360 INPUT A$ 5370 PRINT 5380 PRINT 5390 PRINT 5400 PRINT 'PLEASE INPUT YOUR TEAM''S NAME IN QUOTES'; 5410 INPUT B$ 5420 PRINT 5430 REM----CLEAR THE SCREEN 5440 GOSUB 120 5450 REM-----FIND OUT WHICH WAY TO PLAY 5460 PRINT ,'THERE ARE THREE WAYS TO PLAY:' 5470 PRINT 5480 PRINT 5490 PRINT 5500 PRINT ,'1. COMPUTER VS. PLAYER' 5510 PRINT ,'2. PLAYER VS. PLAYER' 5520 PRINT ,'3. COMPUTER VS. COMPUTER' 5530 PRINT 5540 PRINT ,'HOW DO YOU WISH TO PLAY?' 5550 PRINT 5560 REM------GET DECISION FROM USER 5570 INPUT G 5580 IF G<>INT(G) GO TO 5440 5590 IF G<1 THEN IF G>3 THEN GO TO 5440 5600 REM----CLEAR THE SCREEN 5610 GOSUB 120 5620 PRINT 'TODAY''S GAME PITS THE ';A$;' AGAINST THE ';B$ 5630 PRINT 5640 PRINT 5650 REM----DELAY FOR A FEW SECONDS 5660 FOR I=1 TO 300 5670 NEXT I 5680 PRINT 5690 PRINT 5700 H1=0 5710 T=0 5720 H2=1 5730 D=1 5740 P=1 5750 H7=15 5760 REM-----SHOW WHO WON THE TOSS 5770 PRINT 'THE '; 5780 IF RND<.5 GO TO 5810 5790 PRINT B$; 5800 GO TO 5830 5810 P=-1 5820 PRINT A$; 5830 H=P 5840 PRINT '''S WON THE TOSS AND WILL RECEIVE.' 5850 PRINT 5860 PRINT 5870 PRINT 5880 REM-----DELAY FOR A FEW SECONDS 5890 FOR Z=1 TO 1000 5900 NEXT Z 5910 GOSUB 4570 5920 GO TO 570 5930 REM-----DELAY AGAIN FOR A FEW SECONDS 5940 FOR E=1 TO 300 5950 NEXT E 5960 RETURN 5970 REM * LOGIC FOR SCREEN PASS * 5980 PRINT ' ' 5990 PRINT ' SCREEN PASS' 6000 IF RND<.25GO TO 1560 6010 IF RND<.18 GO TO 1530 6020 A=15 6030 B=5 6040 Y=FNA(X) 6050 GO TO 1410 6060 PRINT "THIS PROGRAM HAS BEEN " 6070 PRINT "BROUGHT TO YOU BY THE" 6080 PRINT "JAX COMPUTER SERVICES" 6090 PRINT 6100 END