1  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY *********************
2  REM
3  REM       FTBL:    FOOTBALL   
4  REM
5  REM       36181    REV A     3/72    
6  REM
7  REM ****  CONTRIBUTED PROGRAM **************************************
9  REM THIS VERSION INSTALLED 10/6/70 GOP
10  DIM W$[20],X$[20],Y$[15]
20  PRINT "WELCOME TO THE HEWLETT-PACKARD FOOTBALL GAME. SINCE THE"
30  PRINT "GAME WILL BE BETWEEN YOU AND THE COMPUTER, WHAT IS YOUR"
40  PRINT "TEAM'S NAME ";
50  INPUT W$
60  PRINT 
70  PRINT "FINE. NOW THE ";W$;" NEED A QUARTERBACK (THAT'S YOU, SON)."
80  PRINT "WHAT MAY I CALL YOU ";
90  INPUT Y$
100  PRINT 
110  PRINT "OK, ";Y$;" WHAT DO YOU WANT TO CALL MY TEAM ";
120  INPUT X$
130  PRINT 
140  PRINT 
150  PRINT "SO IT'LL BE THE ";W$;" AGAINST THE ";X$;". TO CALL A PLAY,"
160  PRINT "TYPE IN ONE OF THE FOLLOWING NUMBERS AND PRESS 'RETURN'."
170  PRINT 
180  PRINT 
190  PRINT 
200  PRINT " 1 = SIMPLE RUN; 2 = TRICKY RUN; 3 = SHORT PASS; 4 = LONG PASS;"
210  PRINT "      5 = PUNT; 6 = QUICK KICK; 7 = FIELD GOAL TRY"
220  PRINT 
230  PRINT 
240  PRINT 
250  LET P1=51
260  LET Q1=0
270  LET T=0
280  LET S[1]=0
290  LET S[3]=0
300  PRINT "FOR COIN TOSS, TYPE A NUMBER FROM 1 TO 300 AND PRESS 'RETURN'."
310  INPUT Z1
320  FOR I=1 TO Z1
330  LET X=RND(Q1)
340  NEXT I
350  IF RND(Q1)>1/2 THEN 380
360  PRINT X$;" WON THE TOSS."
370  GOTO 1820
380  PRINT W$;" WON THE TOSS."
390  PRINT W$;"' BALL ON THEIR OWN 20."
400  LET P=1
410  LET X=20
420  LET X1=20
430  LET D=1
440  GOTO 1960
450  PRINT "YOUR CALL, ";Y$;
460  INPUT Z
470  IF Z>7 THEN 500
480  IF Z <= 0 THEN 520
490  GOTO 570
500  PRINT "WHAT KIND OF CALL IS THAT, ";Y$;"? TRY AGAIN.";
510  GOTO 460
520  PRINT "YOU'RE A REAL ZERO (OR LESS), ";Y$;". TRY AGAIN.";
530  GOTO 460
570  LET R=RND(Q1)
580  LET R=R*(.97+P*.03)
590  LET T=T+1
600  IF T<P1 THEN 780
610  PRINT P1-1;"PLAYS HAVE BEEN MADE. DO YOU WISH TO STOP NOW?"
620  PRINT "TYPE A '1' FOR YES, A '0' FOR NO ";
630  INPUT D1
640  GOTO D1+1 OF 760,670
650  GOTO 610
660  PRINT 
670  PRINT "END OF GAME ***"
680  PRINT "FINAL SCORE:  ";W$;S[3];X$;S[1]
690  IF S[3]>S[1] THEN 730
700  PRINT 
710  PRINT "GOOD TRY, ";Y$;". BETTER LUCK NEXT TIME."
720  GOTO 750
730  PRINT Y$;", YOU PLAYED LIKE A PRO, BEATING THE ";X$
740  PRINT "(WHO HAD COMPUTER HELP!)."
750  STOP 
760  PRINT "20 MORE PLAYS WILL BE ALLOWED."
770  LET P1=P1+20
780  LET R1=RND(Q1)
790  LET F=0
800  IF Z>4 THEN 860
810  IF Z=1 THEN 980
820  IF Z=2 THEN 1030
830  PRINT "PASS PLAY------";
840  IF Z=3 THEN 1100
850  GOTO 1250
860  REM : PUNT
870  LET Y=INT(R*30+30)
880  IF Z=7 THEN 2710
890  IF D=4 THEN 910
900  LET Y=INT(Y*1.3)
910  PRINT "PUNT GOOD FOR "Y" YARDS."
920  IF D<4 THEN 960
930  LET Y1=INT(R1^2*20)+(1-P)*INT(R^2*30)
940  PRINT "RUN BACK OF "Y1" YARDS."
950  LET Y=Y-Y1
960  LET F=-1
970  GOTO 1420
980  REM : SIMPLE RUN
990  PRINT "RUNNING PLAY-----";
1000  LET Y=INT(24*(R-.5)^3+3)
1010  IF R1<.05 THEN 1070
1020  GOTO 1310
1030  REM TRICKY RUN
1040  PRINT "RUNNING PLAY ----";
1050  LET Y=INT(20*R-5)
1060  IF R1>.1 THEN 1310
1070  LET F=-1
1080  PRINT "## FUMBLE AFTER ";
1090  GOTO 1310
1100  REM : SHORT PASS
1105  LET Y=INT(160*(R1-.5)^3+7.5)
1110  IF R<.05 THEN 1160
1120  IF R<.15 THEN 1220
1130  IF R<.55 THEN 1190
1140  PRINT "COMPLETE. ";
1150  GOTO 1310
1160  PRINT "INTERCEPTED!!"
1170  LET F=-1
1180  GOTO 1420
1190  PRINT "INCOMPLETE. ";
1200  LET Y=0
1210  GOTO 1310
1220  PRINT "PASSER TACKLED. ";
1230  LET Y=-INT(10*R1)
1240  GOTO 1310
1250  REM LONG PASS
1260  LET Y=INT(160*(R1-.5)^3+30)
1270  IF R1<.1 THEN 1160
1280  IF R1<.25 THEN 1220
1290  IF R1<.7 THEN 1190
1300  GOTO 1140
1310  REM RESULT OF PLAY
1320  LET X2=X+P*Y
1330  IF X2 >= 100 THEN 1500
1340  IF X2 <= 0 THEN 2100
1350  IF Y<0 THEN 1390
1360  IF Y=0 THEN 1410
1370  PRINT "GAIN OF ";Y
1380  GOTO 1420
1390  PRINT "LOSS OF ";-Y
1400  GOTO 1420
1410  PRINT "NO GAIN"
1420  LET X=X+P*Y
1430  IF X <= 0 THEN 2100
1440  IF X>50 THEN 1470
1450  PRINT "BALL ON ";W$;"'";X;
1460  GOTO 1680
1470  IF X >= 100 THEN 1500
1480  PRINT "BALL ON ";X$;"'";100-X;
1490  GOTO 1680
1500  IF P<0 THEN 1580
1510  IF F<0 THEN 1560
1520  PRINT " TOUCHDOWN!!!"
1530  LET P=-1
1540  GOSUB 2630
1550  GOTO 1820
1560  PRINT "TOUCHBACK FOR ";X$;"."
1570  GOTO 1820
1580  IF F<0 THEN 1650
1590  PRINT "SAFETY"
1600  GOSUB 2540
1610  PRINT "TOUCHDOWN FOR ";W$;"!!!"
1620  LET X=40
1630  LET P=1
1640  GOTO 1850
1650  PRINT "TOUCHDOWN, ";W$;"!!"
1660  GOSUB 2630
1670  GOTO 1820
1680  LET D=D+1
1690  IF F >= 0 THEN 1780
1700  IF P>0 THEN 1750
1710  PRINT 
1720  PRINT W$;"' BALL."
1730  LET P=1
1740  GOTO 1850
1750  PRINT 
1760  PRINT X$;"' BALL."
1770  GOTO 1840
1780  IF P*(X-X1) >= 10 THEN 1850
1790  IF D<5 THEN 1970
1800  IF P<0 THEN 1710
1810  GOTO 1750
1820  LET X=80
1830  PRINT X$;"' BALL ON THEIR OWN 20."
1840  LET P=-1
1850  LET D=1
1860  PRINT "FIRST AND 10"
1870  IF P<0 THEN 1910
1880  IF X<90 THEN 1940
1890  LET X1=90
1900  GOTO 2070
1910  IF X>10 THEN 1940
1920  LET X1=10
1930  GOTO 2070
1940  LET X1=X
1950  GOTO 2070
1960  IF D=1 THEN 2000
1970  IF D=2 THEN 2020
1980  IF D=3 THEN 2040
1990  IF D=4 THEN 2060
2000  PRINT "FIRST AND";10+P*(X1-X)
2010  GOTO 2070
2020  PRINT "SECOND AND";10+P*(X1-X)
2030  GOTO 2070
2040  PRINT "THIRD AND";10+P*(X1-X)
2050  GOTO 2070
2060  PRINT "FOURTH AND";10+P*(X1-X)
2070  PRINT 
2080  IF P>0 THEN 450
2090  GOTO 2280
2100  IF F<0 THEN 2220
2110  IF P>0 THEN 2160
2120  PRINT "TOUCHDOWN!!!!!"
2130  LET P=1
2140  GOSUB 2630
2150  GOTO 390
2160  PRINT "SAFETY!!"
2170  GOSUB 2540
2180  PRINT X$;"' BALL ON THEIR OWN 40."
2190  LET X=60
2200  LET P=-1
2210  GOTO 1850
2220  IF P>0 THEN 2250
2230  PRINT "TOUCHDOWN FOR ";W$;"!!!"
2240  GOTO 390
2250  PRINT "TOUCHDOWN, ";X$;"!!!"
2260  GOSUB 2630
2270  GOTO 390
2280  LET P=-1
2290  IF D>1 THEN 2350
2300  IF RND(Q1)>1/3 THEN 2330
2310  LET Z=3
2320  GOTO 2520
2330  LET Z=1
2340  GOTO 2520
2350  IF D<4 THEN 2420
2360  IF X <= 30 THEN 2390
2370  LET Z=5
2380  GOTO 2520
2390  IF 10+X-X1<3 THEN 2300
2400  LET Z=7
2410  GOTO 2520
2420  IF 10+X-X1<5 THEN 2300
2430  IF X>X1 THEN 2490
2440  IF RND(Q1)>1/2 THEN 2470
2450  LET Z=2
2460  GOTO 2520
2470  LET Z=4
2480  GOTO 2520
2490  IF RND(Q1)>1/4 THEN 2510
2500  GOTO 2450
2510  GOTO 2470
2520  GOTO 570
2530  REM KEEP SCORE
2540  LET S[2-P]=S[2-P]+2
2550  PRINT 
2560  PRINT "******************************"
2570  PRINT 
2580  PRINT "SCORE : ";W$;S[3];X$;S[1]
2590  PRINT 
2600  PRINT "******************************"
2610  PRINT 
2620  RETURN 
2630  IF RND(Q1)>.8 THEN 2670
2640  PRINT "KICK IS GOOD."
2650  LET S[2-P]=S[2-P]+7
2660  GOTO 2550
2670  PRINT "KICK IS OFF TO THE SIDE. NO GOOD."
2680  LET S[2-P]=S[2-P]+6
2690  GOTO 2550
2700  PRINT 
2710  REM FIELD GOAL
2720  PRINT "PLACE KICK"
2730  LET F=-1
2740  IF R>.15 THEN 2770
2750  PRINT "KICK IS BLOCKED**********"
2760  GOTO P+2 OF 390,390,1820
2770  IF P<0 THEN 2880
2780  IF X+Y >= 110 THEN 2840
2790  IF X+Y<80 THEN 2820
2800  PRINT "KICK IS OFF TO THE RIGHT SIDE."
2810  GOTO 1560
2820  PRINT "KICK IS OFF TO THE LEFT SIDE."
2830  GOTO 1420
2840  PRINT "FIELD GOAL!!!!!"
2850  LET S[3]=S[3]+3
2860  GOSUB 2550
2870  GOTO 1820
2880  IF X-Y <= -10 THEN 2920
2890  IF X-Y>20 THEN 2820
2900  PRINT "KICK IS WOBBLY --- NO GOOD!!"
2910  GOTO 390
2920  PRINT "FIELD GOAL!!!"
2930  LET S[1]=S[1]+3
2940  GOSUB 2550
2950  GOTO 390
2960  END 
