0 REM  *  FTBALL  *
10 PRINT "THIS IS DARTMOUTH CHAMPIONSHIP FOOTBALL."
20 PRINT "YOU WILL QUARTERBACK DARTMOUTH. CALL PLAYS AS FOLLOWS:"
30 PRINT "1 = SIMPLE RUN; 2 = TRICKY RUN; 3 = SHORT PASS;"
40 PRINT "4 = LONG PASS; 5 = PUNT; 6 = QUICK KICK;' 7 = PLACE KICK."
45 PRINT
50 LET T = 0
60 LET S(0) = 0
70 LET S(2) = 0
100 PRINT "TOSS OF COIN. (TYPE A NO. FROM 1 TO 300)";
120 INPUT Z1
140 FOR I = 1 TO Z1
160 LET X = RND(X)
180 NEXT I
190 IF RND(Z) > 1/2 THEN 195
191 PRINT "PRINCETON WON THE TOSS"
193 GOTO 2180
195 PRINT "DARTMOUTH WON THE TOSS"
200 PRINT "DARTMOUTH BALL ON ITS OWN 20."
220 LET P = 1
240 LET X = 20
260 LET X1 = 20
280 LET D = 1
300 GOTO 2300
320 PRINT "NEXT PLAY";
340 INPUT Z
360 LET R = RND(Z)
362 LET R = R*(.97+P*.03)
370 LET T = T+1
372 IF T < 50 THEN 380
374 IF RND(Z) > .2 THEN 380
375 PRINT
376 PRINT "END OF GAME ***"
377 PRINT "FINAL SCORE:   DARTMOUTH" S(2); "PRINCETON" S(0)
378 STOP
380 LET R1 = RND(Z)
400 LET F = 0
420 IF Z > 4 THEN 520
440 IF Z = 1 THEN 620
460 IF Z = 2 THEN 700
470 PRINT "PASS PLAY"
480 IF Z = 3 THEN 820
500 GOTO 1140
520 REM PUNT
540 LET Y = INT(100*(R-.5)^3+35)
545 IF Z = 7 THEN 5000
550 IF D = 4 THEN 560
555 LET Y = INT(Y*1.3)
560 PRINT "PUNT GOOD FOR" Y; "YARDS"
562 IF D<4 THEN 580
564 LET Y1 = INT(R1^2*20)+(1-P)*INT(R^2*30)
566 PRINT "RUN BACK FOR " Y1; "YARDS"
568 LET Y = Y-Y1
580 LET F = -1
600 GOTO 1480
620 REM SIMPLE RUN
630 PRINT "RUNNING PLAY"
640 LET Y = INT(24*(R-.5)^3+3)
660 IF R1 < .05 THEN 760
680 GOTO 1260
700 REM TRICKY RUN
710 PRINT "RUNNING PLAY"
720 LET Y = INT(20*R-5)
740 IF R1 > .1 THEN 1260
760 LET F = -1
780 PRINT "*** FUMBLE AFTER ";
800 GOTO 1260
820 REM SHORT PASS
840 LET Y = INT(60*(R1-.5)^3+8)
860 IF R < .05 THEN 960
880 IF R < .15 THEN 1080
900 IF R < .55 THEN 1020
920 PRINT "COMPLETE.   ";
940 GOTO 1260
960 PRINT "INTERCEPTED.   "
980 LET F = -1
1000 GOTO 1480
1020 PRINT "INCOMPLETE.   ";
1040 LET Y = 0
1060 GOTO 1260
1080 PRINT "PASSER TACKLED.   ";
1100 LET Y = - INT(10*R1)
1120 GOTO 1260
1140 REM LONG PASS
1160 LET Y = INT(160*(R1-.5)^3+30)
1180 IF R < .1 THEN 960
1200 IF R < .25 THEN 1080
1220 IF R < .70 THEN 1020
1240 GOTO 920
1260 REM RESULT OF PLAY
1280 LET X2 = X + P*Y
1300 IF X2 >= 100 THEN 1640
1320 IF X2 <= 0 THEN 2380
1340 IF Y < 0 THEN 1420
1360 IF Y = 0 THEN 1460
1380 PRINT "GAIN OF " Y "YARDS"
1400 GOTO 1480
1420 PRINT "LOSS OF " -Y; "YARDS"
1440 GOTO 1480
1460 PRINT "NO GAIN"
1480 LET X = X + P*Y
1500 IF X <= 0 THEN 2380
1520 IF X > 50 THEN 1580
1540 PRINT "BALL ON DARTMOUTH " X; "YARD LINE."
1560 GOTO 1940
1580 IF X >=  100 THEN 1640
1600 PRINT "BALL ON PRINCETON " 100-X ; "YARD LINE."
1620 GOTO 1940
1640 IF P < 0 THEN 1780
1660 IF F < 0 THEN 1740
1680 PRINT "TOUCHDOWN***"
1700 LET P = -1
1710 GOSUB 4300
1720 GOTO 2180
1740 PRINT "TOUCHBACK FOR PRINCETON***"
1760 GOTO 2180
1780 IF F < 0 THEN 1900
1800 PRINT "SAFETY***"
1810 GOSUB 4100
1820 PRINT "DARTMOUTH GETS BALL ON ITS OWN 40."
1840 LET X = 40
1860 LET P = 1
1880 GOTO 2220
1900 PRINT "TOUCHDOWN DARTMOUTH ***"
1910 GOSUB 4300
1920 GOTO 2180
1940 LET D = D+1
1960 IF F >= 0 THEN 2120
1980 IF P > 0 THEN 2060
2000 PRINT "DARTMOUTH'S BALL"
2020 LET P = 1
2040 GOTO 2220
2060 PRINT "PRINCETON'S BALL"
2080 GOTO 2210
2120 IF P*(X-X1)>=10 THEN 2220
2140 IF D < 5 THEN 2300
2150 IF P<0 THEN 2000
2160 GOTO 2060
2180 LET X = 80
2200 PRINT "PRINCETON BALL ON ITS OWN 20."
2210 LET P = -1
2220 LET D = 1
2240 PRINT "FIRST DOWN***"
2242 IF P < 0 THEN 2250
2244 IF X < 90 THEN 2260
2246 LET X1 = 90
2248 GOTO 2320
2250 IF X > 10 THEN 2260
2252 LET X1 = 10
2254 GOTO 2320
2260 LET X1= X
2280 GOTO 2320
2300 PRINT "DOWN " D; "AND " 10 + P*(X1-X); "YARDS TO GO."
2320 PRINT
2340 IF P > 0 THEN 320
2360 GOTO 2680
2380 IF F < 0 THEN 2580
2400 IF P > 0 THEN 2480
2420 PRINT "TOUCHDOWN***"
2440 LET P = 1
2450 GOSUB 4300
2460 GOTO 200
2480 PRINT "SAFETY***"
2490 GOSUB 4100
2500 PRINT "PRINCETON GETS BALL ON ITS OWN 40."
2520 LET X = 60
2540 LET P = -1
2560 GOTO 2220
2580 IF P > 0 THEN 2640
2600 PRINT "TOUCHBACK FOR DARTMOUTH."
2620 GOTO 200
2640 PRINT "TOUCHDOWN PRINCETON ***"
2650 GOSUB 4300
2660 GOTO 200
2680 REM PRINCETON OFFENSE
2700 LET P = -1
2720 IF D > 1 THEN 2840
2740 IF RND(Z) > 1/3 THEN 2800
2760 LET Z = 3
2780 GOTO 3120
2800 LET Z = 1
2820 GOTO 3120
2840 IF D < 4 THEN 2920
2860 IF X <= 30 THEN 2910
2880 LET Z = 5
2900 GOTO 3120
2910 IF 10 + X -X1 < 3 THEN 2740
2912 LET Z = 7
2914 GOTO 3120
2920 IF 10+X-X1 < 5 THEN 2740
2940 IF X > X1 THEN 3060
2960 IF RND(Z) > 1/2 THEN 3020
2980 LET Z = 2
3000 GOTO 3120
3020 LET Z = 4
3040 GOTO 3120
3060 IF RND(Z) > 1/4 THEN 3100
3080 GOTO 2980
3100 GOTO 3020
3120 GOTO 360
4000 REM KEEP SCORE
4100 LET S(1-P) = S(1-P)+2
4200 PRINT "SCORE:   " S(2); "TO   " S(0)
4210 PRINT
4220 RETURN
4300 IF RND(Z) > .8 THEN 4350
4310 PRINT "KICK IS GOOD"
4320 LET S(1-P) = S(1-P)+7
4330 GOTO 4200
4350 PRINT "KICK IS OFF TO THE SIDE"
4360 LET S(1-P) = S(1-P)+6
4370 GOTO 4200
5000 REM FIELD GOAL
5001 PRINT "PLACE KICK"
5005 LET F = -1
5006 IF R > .5 THEN 5010
5007 PRINT "KICK IS BLOCKED***"
5008 LET Y = -5
5009 GOTO 1480
5010 IF P < 0 THEN 5200
5020 IF X+Y >= 110 THEN 5100
5030 IF X + Y < 80 THEN 5060
5040 PRINT "KICK IS OFF TO THE SIDE."
5050 GOTO 1740
5060 PRINT "KICK IS SHORT."
5070 GOTO 1480
5100 PRINT "FIELD GOAL ***"
5110 LET S(2) = S(2)+3
5120 GOSUB 4200
5130 GOTO 2180
5200 IF X-Y <= -10 THEN 5300
5210 IF X-Y > 20 THEN 5060
5220 PRINT "KICK IS OFF TO THE SIDE."
5230 GOTO 2600
5300 PRINT "FIELD GOAL ***"
5310 LET S(0) = S(0)+3
5320 GOSUB 4200
5330 GOTO 200
9999 END
