home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG013.ARK / NFL.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  14KB  |  591 lines

  1. 10 REM NFL FOOTBALL
  2. 20 REM
  3. 30 REM  DESCRIPTIONS--GENERATES AN I.E.C. CHAMPIONSHIP FOOTBALL GAME
  4. 40 REM  WITH THE USER AS THE QUARTERBACK.
  5. 50 REM
  6. 60 REM  SOURCE--JOHN G. KEMENY
  7. 70 REM                       MODIFIED BY RICHARD L BERG
  8. 80 REM
  9. 90 REM  INSTRUCTIONS--TYPE "RUN" AND FOLLOW INSTRUCTIONS.
  10. 100 REM
  11. 110 REM
  12. 120 REM  *  *  *  *  *  *  *  MAIN PROGRAM   *  *  *  *  *  *  *
  13. 130 REM
  14. 140 PRINT TAB(17);"        NFL PROFESSIONAL FOOTBALL"
  15. 150 PRINT TAB(17);"*****************************************"
  16. 160 FOR I = 1 TO 10:PRINT:NEXT I
  17. 165 DIM O$(20),S(20),D$(20)
  18. 170 INPUT "CHOOSE YOUR TEAM"; O$(0)
  19. 180 RANDOMIZE
  20. 190 INPUT "CHOOSE YOUR OPPONENT"; O$(1)
  21. 210 PRINT
  22. 220 INPUT "DO YOU WISH INSTRUCTIONS"; A$
  23. 240 IF LEFT$(A$,1) = "N" THEN 460
  24. 250 IF LEFT$(A$,1) <> "Y" THEN 280
  25. 260 GOSUB 300
  26. 270 GOTO 460
  27. 280 PRINT "'YES' OR 'NO', PLEASE";
  28. 290 GOTO 220
  29. 300 PRINT
  30. 310 PRINT "YOU WILL QUARTERBACK ";O$(0);"."
  31. 320 PRINT
  32. 330 PRINT "YOU MAY CALL PLAYS BY NUMBER OR BY USING"
  33. 335 PRINT "THE INITIALS OF THE PLAY."
  34. 340 PRINT
  35. 345 PRINT "    1 = SR = SIMPLE RUN"
  36. 350 PRINT "    2 = TR = TRICKY RUN"
  37. 355 PRINT "    3 = SP = SHORT PASS"
  38. 360 PRINT "    4 = LP = LONG PASS"
  39. 365 PRINT "    5 =  P = PUNT"
  40. 370 PRINT "    6 = QK = QUICK KICK"
  41. 375 PRINT "    7 = PK = PLACE KICK"
  42. 400 PRINT
  43. 410 PRINT " WHEN YOU SEE THE QUESTION 'READY?' TYPE THE"
  44. 415 PRINT "LETTER 'Y' FOR YES AND THE PROGRAM WILL CONTINUE."
  45. 420 PRINT
  46. 430 PRINT
  47. 440 PRINT
  48. 445 INPUT "READY"; DUMMY$
  49. 450 RETURN
  50. 460 LET H1=1
  51. 470 LET T=0
  52. 480 PRINT
  53. 490 LET S(0) = 0
  54. 500 LET S(1) = 0
  55. 510 D$(1) = "INJURED PLAYER"
  56. 520 D$(2) = "DRUNKEN FAN"
  57. 530 D$(3) = "RABID DOG"
  58. 534 D$(4) = "NUDE GIRL"
  59. 536 D$(5) = "HIPPIE FREAK"
  60. 540 READ Y$
  61. 550 DATA YES
  62. 560 READ Q$
  63. 570 DATA DO YOU ACCEPT THE PENALTY
  64. 580 READ R$
  65. 590 DATA "'YES' OR 'NO', PLEASE"
  66. 600 READ N$
  67. 610 DATA NO
  68. 620 DIM L$(20)
  69. 630 L$(1) = "KICK"
  70. 632 L$(2) = "RECEIVE"
  71. 634 L$(3) = "YARDS"
  72. 636 L$(4) = "RUN BACK FOR "
  73. 638 L$(5) = "BALL ON "
  74. 640 L$(6) = "YARD LINE"
  75. 642 L$(7) = "SIMPLE RUN "
  76. 644 L$(8) = "TRICKY RUN "
  77. 646 L$(9) = "SHORT PASS "
  78. 648 L$(10) = "LONG PASS "
  79. 650 L$(11) = "PUNT"
  80. 652 L$(12) = "QUICK KICK "
  81. 654 L$(13) = "PLACE KICK "
  82. 656 L$(14) = "LOSS OF "
  83. 658 L$(15) = "NO GAIN"
  84. 660 L$(16) = "GAIN OF "
  85. 662 L$(17) = "TOUCHDOWN "
  86. 664 L$(18) = "TOUCHBACK "
  87. 666 L$(19) = "SAFETY***"
  88. 668 L$(20) = "JUNK"
  89. 680 LET P = INT(RND*2)
  90. 690 PRINT O$(P);" WIN THE TOSS"
  91. 700 DEF FNF=1-2*P
  92. 710 DEF FNG = P*(X1-X) + (1-P)*(X-X1)
  93. 720 LET H2=P
  94. 730 IF P = 0 THEN 770
  95. 740 PRINT O$(1);" ELECT TO RECEIVE"
  96. 750 PRINT
  97. 760 GOTO 880
  98. 770 INPUT "DO YOU ELECT TO KICK OR RECEIVE"; A$
  99. 790 PRINT
  100. 800 FOR E = 1 TO 2
  101. 810 IF A$ = L$(E) THEN 850
  102. 820 NEXT E
  103. 830 PRINT "INCORRECT ANSWER. PLEASE TYPE 'KICK' OR 'RECEIVE'";
  104. 840 GOTO 770
  105. 850 IF E = 2 THEN 880
  106. 860 LET H2=1
  107. 870 LET P = 1
  108. 880 REM  KICKOFF
  109. 890 LET X = 40 + (1-P)*20
  110. 900 IF P=0 THEN 5040
  111. 910 INPUT "DO YOU WISH TO TRY AN ON-SIDE KICK"; A$
  112. 930 IF LEFT$(A$,1) = "Y" THEN 4800
  113. 940 IF LEFT$(A$,1) <> "N" THEN 970
  114. 950 PRINT
  115. 960 GOTO 990
  116. 970 PRINT "'YES' OR 'NO', PLEASE";
  117. 980 GOTO 910
  118. 990 LET Y = INT(20*(RND-.5)*3+55)
  119. 1000 PRINT "KICKOFF GOOD FOR ";Y;L$(3)
  120. 1010 LET X = X-FNF*Y
  121. 1020 IF ABS(X50)>=50 THEN 1110
  122. 1030 REM KICK RETURN
  123. 1040 LET Y = ABS(INT(100*RND*2))
  124. 1050 PRINT L$(4);
  125. 1060 IF Y=0 THEN 1090
  126. 1070 LET X = X+FNF*Y
  127. 1080 IF ABS(X-50)>=50 THEN 3520
  128. 1090 PRINT Y;L$(3)
  129. 1100 GOTO 1140
  130. 1110 REM  TOUCHBACK
  131. 1120 PRINT "TOUCHBACK ***"
  132. 1130 LET X = 20 + P*60
  133. 1140 REM  FIRST DOWN
  134. 1150 GOSUB 1220
  135. 1160 LET X1 = X
  136. 1170 LET D = 1
  137. 1180 PRINT "FIRST DOWN ";O$(P);" ***"
  138. 1190 PRINT
  139. 1200 PRINT
  140. 1210 GOTO 1280
  141. 1220 REM  PRINT POSITION
  142. 1230 IF X > 50 THEN 1260
  143. 1240 PRINT L$(5);O$(0);" ";X;L$(6)
  144. 1245 E8=1
  145. 1250 GOTO 1270
  146. 1260 PRINT L$(5);O$(1);" ";100-X;L$(6)
  147. 1265 E8=0
  148. 1270 RETURN
  149. 1280 REM  NEW PLAY
  150. 1290 LET T = T+1
  151. 1300 IF T=22 THEN 1550
  152. 1310 IF T=42 THEN 5110
  153. 1320 IF T<50 THEN 1370
  154. 1330 IF H1=1 THEN 4600
  155. 1340 PRINT "********** END OF GAME **********"
  156. 1350 PRINT "FINAL SCORE|  ";O$(0);" ";S(0);"  ";O$(1);" ";S(1)
  157. 1360 STOP
  158. 1370 IF P=1 THEN 2700
  159. 1380 INPUT "NEXT PLAY"; Z$
  160. 1400 IF Z$ = "1" THEN 1490
  161. 1405 IF Z$<>"SR" THEN 1410
  162. 1406 Z$ = "1"
  163. 1407 GOTO 1490
  164. 1410 IF Z$ = "2" THEN 1490
  165. 1415 IF Z$<>"TR" THEN 1420
  166. 1416 Z$ = "2"
  167. 1417 GOTO 1490
  168. 1420 IF Z$ = "3" THEN 1490
  169. 1425 IF Z$<>"SP" THEN 1430
  170. 1426 Z$ = "3"
  171. 1427 GOTO 1490
  172. 1430 IF Z$ = "4" THEN 1490
  173. 1435 IF Z$<>"LP" THEN 1440
  174. 1436 Z$ = "4"
  175. 1437 GOTO 1490
  176. 1440 IF Z$ = "5" THEN 1490
  177. 1445 IF Z$<>"P" THEN 1450
  178. 1446 Z$ = "5"
  179. 1447 GOTO 1490
  180. 1450 IF Z$ = "6" THEN 1490
  181. 1455 IF Z$<>"QK" THEN 1460
  182. 1456 Z$ = "6"
  183. 1457 GOTO 1490
  184. 1460 IF Z$ = "7" THEN 1490
  185. 1465 IF Z$<>"PK" THEN 1470
  186. 1466 Z$="7"
  187. 1467 GOTO 1490
  188. 1470 GO SUB 320
  189. 1480 GOTO 1380
  190. 1490 Z = VAL(Z$)
  191. 1500 LET F = 0
  192. 1510 PRINT L$(Z+6);".  ";
  193. 1520 LET R = RND*(.98+FNF*.02)
  194. 1530 LET R1 = RND
  195. 1540 ON Z GOTO 1610,1680,1820,2170,2340,2340,2500
  196. 1550 REM  JEAN'S SPECIAL
  197. 1560 IF RND>1/3 THEN 1370
  198. 1570 LET D5=INT(RND*5+1)
  199. 1580 PRINT "GAME DELAYED.  ";D$(D5);" ON THE FIELD."
  200. 1585 PRINT
  201. 1586 INPUT "READY"; DUMMY$
  202. 1590 PRINT
  203. 1600 GOTO 1370
  204. 1610 REM  SIMPLE RUN.
  205. 1620 LET Y=3
  206. 1630 LET Y=Y+INT(24*(R-.5)-3)
  207. 1640 IF RND<.05 THEN 1630
  208. 1650 IF RND < .03 THEN 1740
  209. 1660 IF RND>=.98 THEN 3520
  210. 1670 GOTO 3110
  211. 1680 REM  TRICKY RUN.
  212. 1690 LET Y=-7
  213. 1700 LET Y=Y+INT(20*R+24*(RND-.5)-3)
  214. 1710 IF RND<.04 THEN 1700
  215. 1720 IF RND > .07 THEN 3110
  216. 1730 IF RND>=.95 THEN 3520
  217. 1740 LET F = -1
  218. 1750 LET X3 = X
  219. 1760 LET X = X + FNF*Y
  220. 1770 IF ABS(X-50) >= 50 THEN 1800
  221. 1780 PRINT "*** FUMBLE AFTER ";
  222. 1790 GOTO 3150
  223. 1800 PRINT "*** FUMBLE."
  224. 1810 GOTO 3370
  225. 1820 REM  SHORT PASS.
  226. 1830 LET Y=INT(10+RND*10)
  227. 1840 LET Y=Y+INT(60*(R1-.5)-3)
  228. 1850 IF RND<.05 THEN 1840
  229. 1860 IF R < .05 THEN 1920
  230. 1870 IF R < .15 THEN 2080
  231. 1880 IF R < .55 THEN 2110
  232. 1890 PRINT "COMPLETE.  ";
  233. 1900 IF RND>=.95 THEN 3520
  234. 1910 GOTO 3110
  235. 1920 GOTO 1930
  236. 1930 PRINT "INTERCEPTED."
  237. 1940 LET F=-1
  238. 1950 LET Z1=X
  239. 1960 LET X=X+FNF*Y
  240. 1970 IF ABS(X-50)>=50 THEN 3630
  241. 1980 LET Y1=INT(RND*40)
  242. 1990 PRINT "RUN BACK FOR ";Y1;L$(3)
  243. 2000 LET Y=Y-Y1
  244. 2010 LET X=Z1+FNF*Y
  245. 2020 IF X>=100 THEN 3440
  246. 2030 GOTO 3220
  247. 2040 LET F=-1
  248. 2050 LET X = X+FNF*Y
  249. 2060 IF ABS(X-50)>=50 THEN 3370
  250. 2070 GOTO 3220
  251. 2080 PRINT "PASSER TACKLED.  ";
  252. 2090 LET Y = -INT(10*R1)
  253. 2100 GOTO 3110
  254. 2110 LET Y=0
  255. 2120 IF RND<.3 THEN 2150
  256. 2130 PRINT "INCOMPLETE.  ";
  257. 2140 GOTO 3110
  258. 2150 PRINT "BATTED DOWN.  ";
  259. 2160 GOTO 3110
  260. 2170 REM  LONG PASS.
  261. 2180 LET Y=INT(30+RND*20)
  262. 2190 LET Y=Y+INT(160*(R1-.5)-3)
  263. 2200 IF RND<.03 THEN 2190
  264. 2210 IF R < .1 THEN 1920
  265. 2220 IF R<.25 THEN 2280
  266. 2230 IF R<.65 THEN 2110
  267. 2240 IF R<.75 THEN 2310
  268. 2250 PRINT "COMPLETE.  ";
  269. 2260 IF RND>=.91 THEN 3520
  270. 2270 GOTO 3110
  271. 2280 PRINT "PASSER TACKLED.  ";
  272. 2290 LET Y=-INT(15*R1+6)
  273. 2300 GOTO 3110
  274. 2310 PRINT "PASSER SCRAMBLING. ";
  275. 2320 LET Y=INT(-3+80*(R1-.5)-3)
  276. 2330 GOTO 3110
  277. 2340 REM  PUNT OR QUICK KICK.
  278. 2350 LET Y=INT(100*(RND-.5)*3+45)
  279. 2360 IF R1>.15 THEN 2380
  280. 2370 GOTO 2530
  281. 2380 IF D = 4 THEN 2400
  282. 2390 LET Y=INT(Y*1.3)
  283. 2400 PRINT "KICK GOOD FOR ";Y;L$(3)
  284. 2410 IF RND>.84 THEN 5300
  285. 2420 LET F=-1
  286. 2430 LET Z1=X
  287. 2440 LET X=X+FNF*Y
  288. 2450 IF ABS(X-50)>=55 THEN 3630
  289. 2460 LET Y1=INT(R1*40)
  290. 2470 PRINT "RUN BACK FOR "; Y1; L$(3)
  291. 2480 LET Y = Y-Y1
  292. 2490 GOTO 2010
  293. 2500 REM  PLACE KICK.
  294. 2510 LET Y=INT(100*(R-.5)*3+45)
  295. 2520 IF R1>.1 THEN 2570
  296. 2530 PRINT "KICK IS BLOCKED ***"
  297. 2540 LET X=INT(X-FNF*5-FNF*(RND*10))
  298. 2550 LET P = 1-P
  299. 2560 GOTO 1140
  300. 2570 IF X<=35 THEN 2640
  301. 2580 LET X=X+FNF*Y
  302. 2590 IF ABS(X-50)>=50 THEN 2640
  303. 2600 PRINT "KICK IS SHORT."
  304. 2610 LET P = 1-P
  305. 2620 LET Y=INT(RND*50)
  306. 2630 GOTO 1050
  307. 2640 IF R1>.24 THEN 2670
  308. 2650 PRINT "KICK IS OFF TO THE SIDE."
  309. 2660 GOTO 3630
  310. 2670 IF E8 = 1 THEN 2600
  311. 2675 PRINT "FIELD GOAL***"
  312. 2680 LET S(P) = S(P)+3
  313. 2690 GOTO 3560
  314. 2700 REM  OPPONENT'S PLAY
  315. 2702 INPUT "READY"; DUMMY$
  316. 2710 IF T=49 THEN 5180
  317. 2720 IF D > 1 THEN 2780
  318. 2730 IF RND > 1/3 THEN 2760
  319. 2740 LET Z = 3
  320. 2750 GOTO 1500
  321. 2760 LET Z = 1
  322. 2770 GOTO 1500
  323. 2780 IF D = 4 THEN 2930
  324. 2790 IF 10+X-X1 < 5 THEN 2730
  325. 2800 IF X<5 THEN 2730
  326. 2810 IF X<=10 THEN 3080
  327. 2820 IF X > X1 THEN 2860
  328. 2830 LET A = INT(2*RND)
  329. 2840 LET Z = 2+A*2
  330. 2850 GOTO 1500
  331. 2860 IF D < 3 THEN 2830
  332. 2870 IF X<=70 THEN 2830
  333. 2880 IF RND > .25 THEN 2910
  334. 2890 LET Z = 6
  335. 2900 GOTO 1500
  336. 2910 LET Z = 4
  337. 2920 GOTO 1500
  338. 2930 IF X>47 THEN 3040
  339. 2940 IF S(1)=S(0) THEN 3020
  340. 2950 IF S(1)>S(0) THEN 3000
  341. 2960 IF S(0)-S(1)<=3 THEN 3020
  342. 2970 IF H1=2 THEN 2990
  343. 2980 GOTO 3020
  344. 2990 IF T>42 THEN 5260
  345. 3000 IF 10+X-X1 < 3 THEN 2730
  346. 3010 IF X<3 THEN 2730
  347. 3020 LET Z = 7
  348. 3030 GOTO 1500
  349. 3040 IF H1=1 THEN 3060
  350. 3050 IF T>42 THEN 5400
  351. 3060 LET Z=5
  352. 3070 GOTO 1500
  353. 3080 LET A = INT(2*RND)
  354. 3090 LET Z = 2+A
  355. 3100 GOTO 1500
  356. 3110 REM  GAIN OR LOSS
  357. 3120 LET X3 = X
  358. 3130 LET X = X + FNF*Y
  359. 3140 IF ABS(X-50)>=50 THEN 3370
  360. 3150 PRINT L$(15+SGN(Y));
  361. 3160 IF Y = 0 THEN 3190
  362. 3170 PRINT ABS(Y);L$(3)
  363. 3180 GOTO 3200
  364. 3190 PRINT
  365. 3200 IF ABS(X3-50)>40 THEN 3220
  366. 3210 IF RND<.1 THEN 3780
  367. 3220 GOSUB 1220
  368. 3230 IF F=0 THEN 3260
  369. 3240 LET P = 1-P
  370. 3250 GOTO 1160
  371. 3260 IF FNG >= 10 THEN 1160
  372. 3270 IF D = 4 THEN 3240
  373. 3280 LET D = D+1
  374. 3290 PRINT "DOWN ";D;"AND ";
  375. 3300 IF (X1-50)*FNF < 40 THEN 3330
  376. 3310 PRINT "GOAL TO GO"
  377. 3320 GOTO 3340
  378. 3330 PRINT 10-FNG;"YARDS TO GO"
  379. 3340 PRINT
  380. 3345 PRINT
  381. 3346 IF P<1 THEN 3350
  382. 3350 PRINT
  383. 3355 PRINT
  384. 3360 GOTO 1280
  385. 3370 REM  BALL IN END-ZONE
  386. 3380 IF X >= 100 THEN 3410
  387. 3390 LET E=0
  388. 3400 GOTO 3420
  389. 3410 LET E = 1
  390. 3420 ON 1+E-F*2+P*4 GOTO 3430,3510,3680,3630,3510,3430,3630,3680
  391. 3430 REM SAFETY
  392. 3440 LET S(1-P) = S(1-P)+2
  393. 3450 PRINT L$(19)
  394. 3460 GOSUB 3720
  395. 3470 PRINT O$(P);" KICK OFF FROM THEIR 20 YARD LINE."
  396. 3480 LET X = 20 + P*60
  397. 3490 LET P = 1-P
  398. 3500 GOTO 990
  399. 3510 REM OFFENSIVE TD
  400. 3520 PRINT L$(17);" ***"
  401. 3530 IF RND<.16 THEN 3600
  402. 3540 LET S(P) = S(P)+7
  403. 3550 PRINT "KICK IS GOOD"
  404. 3560 GOSUB 3720
  405. 3570 PRINT O$(P);" KICK OFF"
  406. 3580 LET P = 1-P
  407. 3590 GOTO 880
  408. 3600 PRINT "KICK IS OFF TO THE SIDE"
  409. 3610 LET S(P) = S(P)+6
  410. 3620 GOTO 3560
  411. 3630 REM TOUCHBACK
  412. 3640 PRINT L$(18);" ***"
  413. 3650 LET P =1-P
  414. 3660 LET X = 20 + P*60
  415. 3670 GOTO 1140
  416. 3680 REM DEFENSIVE TD
  417. 3690 PRINT L$(17);" FOR ";O$(1-P);" ***"
  418. 3700 LET P = 1-P
  419. 3710 GOTO 3520
  420. 3720 REM  SCORE
  421. 3730 PRINT
  422. 3740 PRINT "SCORE:   ";O$(0);" ";S(0);"    ";O$(1);" ";S(1)
  423. 3750 PRINT
  424. 3760 PRINT
  425. 3770 RETURN
  426. 3780 REM PENALTY
  427. 3790 LET P3 = INT(2*RND)
  428. 3800 LET R2=RND
  429. 3810 IF R2<.15 THEN 3900
  430. 3820 PRINT O$(P3);" OFFSIDES -- PENALTY OF 5 YARDS."
  431. 3830 IF P3 = 0 THEN 4210
  432. 3840 PRINT "DO YOU ACCEPT THE PENALTY";
  433. 3850 INPUT A$
  434. 3860 IF A$="NO"THEN 3220
  435. 3870 IF A$="YES" THEN 4340
  436. 3880 PRINT R$;
  437. 3890 GOTO 3850
  438. 3900 IF P3=P THEN 4010
  439. 3910 PRINT "DEFENSIVE HOLDING --"
  440. 3915 PRINT "PENALTY OF 5 YARDS AND AUTOMATIC FIRST DOWN."
  441. 3920 IF P3=0 THEN 4410
  442. 3930 INPUT "DO YOU ACCEPT THE PENALTY"; A$
  443. 3950 IF A$=N$ THEN 3220
  444. 3960 IF A$=Y$ THEN 3990
  445. 3970 PRINT "'YES' OR 'NO',PLEASE.";
  446. 3980 GOTO 3930
  447. 3990 LET X=X3+FNF*5
  448. 4000 GOTO 1140
  449. 4010 PRINT "OFFENSIVE HOLDING -- PENALTY OF FIFTEEN YARDS."
  450. 4020 IF P3=0 THEN 4410
  451. 4030 INPUT "DO YOU ACCEPT THE PENALTY"; A$
  452. 4050 IF A$=N$ THEN 3220
  453. 4060 IF A$=Y$ THEN 4090
  454. 4070 PRINT R$
  455. 4080 GOTO 4030
  456. 4090 IF ABS(X3-50)<=20 THEN 4170
  457. 4100 IF X3>30 THEN 4150
  458. 4110 IF P=1 THEN 4170
  459. 4120 LET X=X3-FNF*(X3/2)
  460. 4130 GOTO 4180
  461. 4140 GOTO 4180
  462. 4150 IF P=0 THEN 4170
  463. 4160 LET X=X3-FNF*((100-X3)/2)
  464. 4170 LET X=X3-FNF*15
  465. 4180 LET F=0
  466. 4190 LET D=D-1
  467. 4200 GOTO 3220
  468. 4210 REM OPPONENT'S STRATEGY ON PENALTY
  469. 4220 IF P = 1 THEN 4270
  470. 4230 IF Y <= 0 THEN 4310
  471. 4240 IF F < 0 THEN 4310
  472. 4250 IF FNG < 3*D-2 THEN 4310
  473. 4260 GOTO 4330
  474. 4270 IF Y <= 5 THEN 4330
  475. 4280 IF F < 0 THEN 4330
  476. 4290 IF D < 4 THEN 4310
  477. 4300 IF FNG < 10 THEN 4330
  478. 4310 PRINT "PENALTY REFUSED."
  479. 4320 GOTO 3220
  480. 4330 PRINT "PENALTY ACCEPTED."
  481. 4340 LET F = 0
  482. 4350 LET D = D-1
  483. 4360 IF P<>P3 THEN 4390
  484. 4370 LET X = X3-FNF*5
  485. 4380 GOTO 3220
  486. 4390 LET X = X3+FNF*5
  487. 4400 GOTO 3220
  488. 4410 REM OPPONENT'S STRATEGY ON HOLDING
  489. 4420 IF P3=P THEN 4490
  490. 4430 IF Y<5 THEN 4460
  491. 4440 IF ABS(X-X1)<10 THEN 4460
  492. 4450 GOTO 4570
  493. 4460 PRINT "PENALTY ACCEPTED."
  494. 4470 PRINT
  495. 4480 GOTO 3990
  496. 4490 IF D=4 THEN 4570
  497. 4500 IF F<0 THEN 4570
  498. 4510 IF Y<=-5 THEN 4570
  499. 4520 IF D<3 THEN 4540
  500. 4530 IF Y<(9-FNG) THEN 4570
  501. 4540 PRINT "PENALTY ACCEPTED."
  502. 4550 PRINT
  503. 4560 GOTO 4090
  504. 4570 PRINT "PENALTY DECLINED."
  505. 4580 PRINT
  506. 4590 GOTO 3220
  507. 4600 REM THE HALF-TIME SHOW.
  508. 4610 LET H1=2
  509. 4620 LET T=0
  510. 4630 PRINT
  511. 4640 PRINT
  512. 4650 PRINT "IT'S HALF-TIME."
  513. 4660 PRINT "FIRST THE BAND SPELLS"
  514. 4670 PRINT
  515. 4680 PRINT "               ";O$(0)
  516. 4690 PRINT
  517. 4700 PRINT "THEN THE BAND SPELLS"
  518. 4710 PRINT 
  519. 4720 PRINT "               ";O$(1)
  520. 4730 PRINT
  521. 4740 PRINT "AND THAT'S THE END OF THE HALF-TIME SHOW."
  522. 4750 PRINT
  523. 4760 LET P=0
  524. 4770 IF H2=1 THEN 5160
  525. 4780 LET P=1
  526. 4790 GOTO 880
  527. 4800 REM ON-SIDE KICK
  528. 4810 PRINT
  529. 4820 PRINT "ON-SIDE KICK."
  530. 4830 PRINT
  531. 4840 LET Y=INT(10+20*(RND-.5)-3)
  532. 4850 LET P2=P
  533. 4860 IF Y<10 THEN 4900
  534. 4870 LET P2=INT(2*RND)
  535. 4880 PRINT "BALL WENT ";Y;L$(3);". RECOVERED BY ";O$(P2)
  536. 4890 GOTO 4990
  537. 4900 PRINT "BALL WENT ";Y;L$(3);".  FIVE YARD PENALTY. ";
  538. 4910 IF P=1 THEN 4980
  539. 4920 INPUT "DO YOU ACCEPT"; A$
  540. 4940 IF A$=Y$ THEN 5020
  541. 4950 IF A$=N$ THEN 4980
  542. 4960 PRINT R$
  543. 4970 GOTO 4920
  544. 4980 PRINT "PENALTY DECLINED."
  545. 4990 LET X=X-FNF*Y
  546. 5000 LET P=P2
  547. 5010 GOTO 1140
  548. 5020 LET X=X+FNF*5
  549. 5030 GOTO 900
  550. 5040 REM OPPONENT STRATEGY ON ON-SIDE KICK
  551. 5050 IF S(1)>S(0) THEN 990
  552. 5060 IF H1=1 THEN 990
  553. 5070 IF T<30 THEN 990
  554. 5080 IF S(0)-S(1)<=14 THEN 4800
  555. 5090 IF RND>.5 THEN 990
  556. 5100 GOTO 4800
  557. 5110 PRINT "*** TWO MINUTE WARNING ***"
  558. 5120 PRINT "     (8 PLAYS LEFT)"
  559. 5130 PRINT
  560. 5140 PRINT
  561. 5150 GOTO 1370
  562. 5160 LET E=2
  563. 5170 GOTO 880
  564. 5180 IF S(1)>S(0) THEN 5240
  565. 5190 IF H1=2 THEN 5220
  566. 5200 IF S(0)-S(1)<=14 THEN 5240
  567. 5210 GOTO 2910
  568. 5220 IF S(1)>S(0) THEN 5240
  569. 5230 GOTO 2910
  570. 5240 IF X>33 THEN 2760
  571. 5250 GOTO 3020
  572. 5260 IF (10-FNG)<=3 THEN 2760
  573. 5270 ON INT(RND*3+1) GOTO 2910,5280,2740
  574. 5280 LET Z=2
  575. 5290 GOTO 1500
  576. 5300 LET X=X+FNF*Y
  577. 5310 PRINT "LOOSE FOOTBALL"
  578. 5320 ON (RND*2+1) GOTO 5370,5330
  579. 5330 PRINT "RECOVERED BY ";O$(P)
  580. 5340 IF ABS(X-50)>=50 THEN 3370
  581. 5350 GOSUB 1220
  582. 5360 GOTO 1160
  583. 5370 PRINT "RECOVERED BY ";O$(1-P)
  584. 5380 LET P=1-P
  585. 5390 GOTO 5340
  586. 5400 IF S(1)>=S(0) THEN 3060
  587. 5410 IF X>70 THEN 3060
  588. 5420 IF S(1)-S(0)<=7 THEN 5260
  589. 5430 GOTO 3060
  590. 5440 END
  591.