10 PRINT "THIS IS A DEMONSTRATION OF PDP-11 BASIC" 20 PRINT "IF YOU NEED INSTRUCTIONS FOR PLAYING FOOTBALL, TYPE A 1"; 30 INPUT I 40 IF I<>1 THEN 340 50 PRINT 60 PRINT 70 PRINT "WHEN IT ASKS YOU A QUESTION TO BE ANSWERED YES OR" 80 PRINT "NO, TYPE IN 0 FOR NO OR 1 FOR YES." 90 PRINT 100 PRINT "ON OFFENSE YOU HAVE THE FOLLOWING PERMITTED PLAYS:" 110 PRINT "PLAY","CODE" 120 PRINT "RUN","10" 130 PRINT "PASS","11" 140 PRINT "SWEEP","12" 150 PRINT "SCREEN PASS","13" 160 PRINT "LONG PASS","14" 170 PRINT "DRAW PLAY","15" 180 PRINT "PUNT","16" 190 PRINT "FIELDGOAL","17" 200 PRINT 210 PRINT "ON DEFENSE, YOU MAY TRY ONE OF THE FOLLOWING:" 220 PRINT "DEFENSE","CODE" 230 PRINT "NORMAL","4","GOOD AGAINST SWEEP AND SCREEN" 240 PRINT "HOLD","5","GOOD AGAINST RUN, PASS AND DRAW" 250 PRINT "BLITZ","6","GOOD AGAINST PASS OR LONG PASS" 260 PRINT "INTERCEPT","7","INCREASES THE ODDS FOR AN INTERCEPTION" 270 PRINT "BLOCK","8","GIVES YOU A CHANCE TO BLOCK A KICK," 280 PRINT " "," ","BUT DECREASES THE DISTANCE RUNBACK." 290 PRINT 300 PRINT "TO CALL A PARTICULAR PLAY JUST TYPE ITS CODE NUMBER." 310 PRINT "ALSO, AT ANY TIME DURING PLAY YOU MAY CALL TIME OUT" 320 PRINT "BY TYPING A '2'. HOWEVER YOU ARE PERMITTED ONLY THREE" 330 PRINT "TIMEOUTS PER HALF." 340 PRINT 350 PRINT 360 DEF FNT(X)=SIN(X)/COS(X) 370 DIM R(17) 380 FOR I=0 TO 17 390 READ R(I) 400 NEXT I 410 DATA 9,13,100,0,9,10,12,11,12,0,1,5,3,4,6,2,8,7 420 RANDOMIZE 430 LET F=0 440 LET Z3=0 450 LET O=0 460 LET L=0 470 DIM Z(5,3),P(2),D(2,5) 480 FOR A=0 TO 5 490 FOR B=0 TO 2 500 READ Z(A,B),D(B,A) 505 LET P(B)=0 510 NEXT B 520 READ Z(A,3) 530 NEXT A 540 PRINT "DO YOU WANT TO RECEIVE"; 550 LET X=1 560 GOSUB 3610 570 LET S=2-SGN(13-Q) 580 LET K=S 590 LET T1=120 600 LET U2=3 610 LET U=3 620 LET C=900 630 GOSUB 2250 640 LET F1=50 650 LET B=INT(F1+O*20*RND(0)+(1-O)*29*(2-RND(0)^7-RND(0)^(3-Z2))) 660 LET O=0 670 LET Z9=8 680 GOSUB 1490 690 LET L=0 700 IF B<=99 THEN 2340 710 PRINT "A TOUCHBACK" 720 LET B=20 730 LET L=0 740 IF S=2 THEN 770 750 PRINT "MY "; 760 GOTO 780 770 PRINT "YOUR "; 780 GOSUB 3290 790 GOSUB 2980 800 LET D=1 810 LET F2=.03 820 LET O=0 830 IF C<=0 THEN 2770 840 GOSUB 2530 850 LET Z2=1 860 LET Z3=.3 870 IF C<=F*T1 THEN 2920 880 IF C<=0 THEN 2770 890 IF L=0 THEN 910 900 PRINT "TIME TO GO--"; 910 PRINT INT(C/60);"MIN,";C-60*INT(C/60);"SEC. "; 920 PRINT "YOUR PLAY"; 930 GOSUB 3610 940 IF S=1 THEN 980 950 IF Q>8 THEN 920 960 LET M=Q 970 GOTO 1000 980 LET Y=Q-8 990 IF ABS(Q-10.5)^2>3 THEN 920 1000 LET C=INT(C-L*(5+23*RND(X))) 1010 LET L=1 1020 IF M=7 THEN 1760 1030 IF M=8 THEN 1920 1040 LET Y1=Y-1 1050 IF RND(X)>Z(M-1,Y1) THEN 1240 1060 LET A=2 1070 GOSUB 3020 1080 IF M<4 THEN 1110 1090 PRINT "PASS COMPLETE.."; 1100 LET L=SGN(INT(4*RND(0))) 1110 IF RND(X)0 THEN 1210 1130 IF G=0 THEN 1170 1140 IF G+B<1 THEN 2170 1150 PRINT "LOSS OF";-G; 1160 GOTO 1610 1170 PRINT "NO GAIN" 1180 LET Z9=2 1190 GOSUB 1490 1200 GOTO 1670 1210 IF B+G>99 THEN 1650 1220 PRINT "GAIN OF";G; 1230 GOTO 1610 1240 IF M>3 THEN 1280 1250 LET A=1 1260 GOSUB 3020 1270 GOTO 1120 1280 IF RND(X)<.06*(2-SGN(Y-3)) THEN 1360 1290 IF RND(0)<.05+INT(Y/3.5)/5 THEN 1510 1300 LET Z9=6 1310 GOSUB 1490 1320 PRINT "PASS INCOMPLETE" 1330 LET L=0 1340 LET G=0 1350 GOTO 3120 1360 PRINT "PASS **INTERCEPTED**"; 1370 LET A=1 1380 GOSUB 3020 1390 IF B<40 THEN 1410 1400 LET G=20*(1+SGN(G)) 1410 LET B=100-B-G 1420 LET S=3-S 1430 LET Z9=9 1440 GOSUB 1490 1450 IF B<1 THEN 710 1460 IF B>99 THEN 1650 1470 PRINT "AT "; 1480 GOTO 2360 1490 LET C=C-INT(4+Z9/2*(1+RND(0))) 1500 RETURN 1510 LET G=-(5+INT(10*RND(X))) 1520 PRINT "THE QUARTERBACK "; 1530 IF RND(X)>.5 THEN 1560 1540 PRINT "IS THROWN FOR A "; 1550 GOTO 1110 1560 LET G=-(2*G+8) 1570 LET M=5 1580 LET A=1 1590 PRINT "SCRAMBLES FOR A "; 1600 GOTO 1110 1610 LET B=B+G 1620 PRINT "TO "; 1630 GOSUB 3300 1640 IF B<=99 THEN 1670 1650 GOSUB 1990 1660 GOTO 630 1670 IF B1>B THEN 3120 1680 IF B1.5 THEN 1730 1700 PRINT "**MEASUREMENT**" 1710 GOSUB 3520 1720 IF RND(X)<.5 THEN 3120 1730 GOSUB 2980 1740 LET D=0 1750 GOTO 3120 1760 IF RND(X)<.06 THEN 1890 1770 LET B=B+30+INT(15*(1-RND(X)^3)) 1780 LET Z9=2 1790 GOSUB 1490 1800 IF B<=99 THEN 1850 1810 LET P1=3 1820 GOSUB 2030 1830 IF P1=0 THEN 710 1840 GOTO 630 1850 PRINT "THE KICK IS "; 1860 LET Z2=0 1870 LET S=3-S 1880 GOTO 2340 1890 PRINT "**BLOCKED** RECOVERED.."; 1900 LET G=-INT(14*RND(X)) 1910 GOTO 1410 1920 PRINT "THE PUNT IS "; 1930 IF RND(X)<.06 THEN 1890 1940 LET F1=B 1950 LET Z2=1 1960 LET S=3-S 1970 LET Z3=.65 1980 GOTO 650 1990 PRINT "** TOUCHDOWN**" 2000 LET P1=1 2010 LET P(S)=P(S)+6 2020 LET B=130 2030 PRINT "THE KICK IS "; 2040 IF RND(X)<(B/132)^4 THEN 2070 2050 LET P1=0 2060 PRINT "NO "; 2070 PRINT "GOOD" 2080 LET P(S)=P(S)+P1 2090 GOSUB 2120 2100 LET S=3-S 2110 RETURN 2120 PRINT "SCORE: ME";P(1);" YOU";P(2) 2130 LET L=0 2140 IF X<5 THEN 2160 2150 IF P(1)<>P(2) THEN 2770 2160 RETURN 2170 PRINT "**SAFETY**" 2180 LET P(3-S)=P(3-S)+2 2190 LET F1=30 2200 LET S=3-S 2210 GOSUB 2120 2220 GOSUB 3440 2230 PRINT "FROM THE 20" 2240 GOTO 650 2250 GOSUB 3440 2260 IF S=2 THEN 2330 2270 PRINT "ON-SIDE"; 2280 GOSUB 3610 2290 IF Q<>13 THEN 2330 2300 LET F2=.15 2310 LET Z2=1 2320 LET O=1 2330 RETURN 2340 LET B=100-B 2350 PRINT "RECEIVED AT "; 2360 GOSUB 3300 2370 IF Z2*RND(X)>Z3 THEN 2490 2380 IF RND(X)99 THEN 1650 2470 PRINT " TO "; 2480 GOSUB 3300 2490 IF RND(0)>F2 THEN 3260 2500 LET G=0 2510 PRINT "**FUMBLE**"; 2520 GOTO 1410 2530 IF S=1 THEN 2560 2540 LET Y=INT(1+3.5*RND(0)) 2550 RETURN 2560 LET M=INT(55*RND(0)/10.5)+1 2570 IF (B1-B)/(5-D)<3 THEN 2590 2580 LET M=INT(6-4*RND(0)^2) 2590 IF L*F*60>=C THEN 2670 2600 IF D<4 THEN 2550 2610 PRINT "I'LL "; 2620 IF B<55 THEN 2720 2630 IF 0<4*RND(0)-B1+B THEN 2750 2640 PRINT "TRY FOR A FIELD GOAL" 2650 LET M=7 2660 RETURN 2670 IF P(2)*U2<=P(1)*U2 THEN 2600 2680 PRINT "TIME OUT" 2690 LET U2=U2-1 2700 GOSUB 3520 2710 GOTO 2600 2720 PRINT "PUNT" 2730 LET M=8 2740 RETURN 2750 PRINT "GO FOR IT" 2760 RETURN 2770 IF X<4 THEN 2830 2780 IF P(1)=P(2) THEN 2830 2790 PRINT "THE GAME IS OVER" 2800 PRINT "FINAL "; 2810 GOSUB 2120 2820 STOP 2830 PRINT "END OF PERIOD";X 2840 GOSUB 2120 2850 LET F=1-F 2860 GOSUB 3520 2870 LET C=900 2880 LET X=X+1 2890 IF F<>0 THEN 810 2900 LET S=3-K 2910 GOTO 580 2920 IF T1=0 THEN 2770 2930 PRINT "2 MINUTE WARNING" 2940 GOSUB 3520 2950 LET T1=0 2960 LET C=120 2970 GOTO 880 2980 LET B1=B+10 2990 IF B1<=100 THEN 3010 3000 LET B1=100 3010 RETURN 3020 LET Q=1.3*(A*RND(0)-1)-.06 3030 LET A=1 3040 IF Q>=0 THEN 3070 3050 LET A=0 3060 LET Q=-Q 3070 LET M1=M-1 3080 LET G=D(A,M1)+FNT(Q)*(D(2,M1)-D(A,M1))/3.5 3090 LET G=G+INT(RND(0)+.02)*A*100*RND(0) 3100 LET G=INT(G) 3110 RETURN 3120 LET D=D+1 3130 IF D=5 THEN 3240 3140 IF D<> 1 THEN 3160 3150 PRINT "1ST"; 3160 IF D<>2 THEN 3180 3170 PRINT "2ND"; 3180 IF D<>3 THEN 3200 3190 PRINT "3RD"; 3200 IF D<4 THEN 3220 3210 PRINT "4TH"; 3220 PRINT " AND";B1-B;" "; 3230 GOTO 810 3240 LET S=3-S 3250 LET B=100-B 3260 IF S=2 THEN 770 3270 PRINT "MY "; 3280 GOTO 780 3290 PRINT "BALL ON "; 3300 IF B=50 THEN 3400 3310 LET V=50-ABS(B-50) 3320 LET C=C-INT(7+3*RND(0)) 3330 IF S=1 THEN 3420 3340 IF B<50 THEN 3370 3350 PRINT "MY "; 3360 GOTO 3380 3370 PRINT "YOUR "; 3380 PRINT V 3390 RETURN 3400 PRINT "THE 50" 3410 RETURN 3420 IF B<50 THEN 3350 3430 GOTO 3370 3440 IF S=2 THEN 3470 3450 PRINT "YOU"; 3460 GOTO 3480 3470 PRINT "I"; 3480 PRINT " KICK OFF." 3490 LET F2=.06 3500 LET Z2=0 3510 RETURN 3520 LET L=0 3530 PRINT "TIMEOUT CALLED..." 3540 PRINT 3550 RETURN 3560 IF U=0 THEN 3600 3570 LET U=U-1 3580 GOSUB 3520 3590 GOTO 3610 3600 PRINT "..WRONG, TRY AGAIN" 3610 INPUT A 3620 IF ABS(INT(A))>17 THEN 3600 3630 LET Q=R(INT(ABS(A))) 3640 IF Q=0 THEN 3600 3650 IF Q=100 THEN 3560 3660 RETURN 3670 DATA .5,-2,.25,4,.5,13,.55 3680 DATA .4,-2,.3,7,.65,15,.75 3690 DATA .4,-2,.3,6,.6,15,.35 3700 DATA .65,-2,.65,6,.6,17,.9 3710 DATA .4,2,.7,10,.4,27,.2 3720 DATA .1,19,.4,35,.2,100,.1 3730 END