home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / game3 / football.bas < prev    next >
BASIC Source File  |  1987-07-23  |  9KB  |  404 lines

  1. 10 KEY OFF:CLS
  2. 20 SCREEN 0
  3. 30 WIDTH 40
  4. 40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  5. 50 PRINT"░┌───────────────────────────────────┐░"
  6. 60 PRINT"░│                                   │░"
  7. 70 PRINT"░│            2084-A.BAS             │░"
  8. 80 PRINT"░│             FOOTBALL              │░"
  9. 90 PRINT"░│                                   │░"
  10. 100 PRINT"░│                                   │░"
  11. 110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF  │░"
  12. 120 PRINT"░│      ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄      │░"
  13. 130 PRINT"░│        █   █   █ █     █   █      │░"
  14. 140 PRINT"░│        █   █▄▄▄█ █     █   █      │░"
  15. 150 PRINT"░│        █   █     █     █   █      │░"
  16. 160 PRINT"░│      ▄▄█▄▄ █     █▄▄▄▄ █▄▄▄█      │░"
  17. 170 PRINT"░│                                   │░"
  18. 180 PRINT"░│      International PC Owners      │░"
  19. 190 PRINT"░│                                   │░"
  20. 200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
  21. 210 PRINT"░│                                   │░"
  22. 220 PRINT"░└───────────────────────────────────┘░"
  23. 230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  24. 240 PRINT
  25. 250 PRINT "       PRESS ANY KEY TO CONTINUE
  26. 260 A$=INKEY$: IF A$="" THEN 260
  27. 270 WIDTH 80
  28. 280 CLS
  29. 1000 CLS:KEY OFF
  30. 1010 PRINT ,"F O O T B A L L"
  31. 1020 PRINT
  32. 1030 PRINT "WOULD YOU LIKE INSTRUCTIONS FOR PLAYING FOOTBALL";
  33. 1040 INPUT I$
  34. 1050 IF LEFT$(I$,1)<>"Y" THEN 1330
  35. 1060 PRINT
  36. 1070 PRINT
  37. 1080 PRINT "ON OFFENSE YOU HAVE THE FOLLOWING PERMITTED PLAYS:" 
  38. 1090 PRINT "PLAY","CODE"
  39. 1100 PRINT "RUN","10" 
  40. 1110 PRINT "PASS","11"
  41. 1120 PRINT "SWEEP","12" 
  42. 1130 PRINT "SCREEN PASS","13" 
  43. 1140 PRINT "LONG PASS","14" 
  44. 1150 PRINT "DRAW PLAY","15" 
  45. 1160 PRINT "PUNT","16"
  46. 1170 PRINT "FIELDGOAL","17" 
  47. 1180 PRINT
  48. 1190 PRINT "ON DEFENSE, YOU MAY TRY ONE OF THE FOLLOWING:"
  49. 1200 PRINT "DEFENSE","CODE" 
  50. 1210 PRINT "NORMAL","4","GOOD AGAINST SWEEP AND SCREEN" 
  51. 1220 PRINT "HOLD","5","GOOD AGAINST RUN, PASS AND DRAW" 
  52. 1230 PRINT "BLITZ","6","GOOD AGAINST PASS OR LONG PASS" 
  53. 1240 PRINT "INTERCEPT","7","INCREASES THE ODDS FOR AN INTERCEPTION" 
  54. 1250 PRINT "BLOCK","8","GIVES YOU A CHANCE TO BLOCK A KICK,"
  55. 1260 PRINT " "," ","BUT DECREASES THE DISTANCE RUNBACK."
  56. 1270 PRINT :PRINT"HIT ANY KEY"
  57. 1280 A$=INKEY$:IF A$="" THEN 1280
  58. 1290 PRINT "TO CALL A PARTICULAR PLAY JUST TYPE ITS CODE NUMBER." 
  59. 1300 PRINT "ALSO, AT ANY TIME DURING PLAY YOU MAY CALL TIME OUT"
  60. 1310 PRINT "BY TYPING A '2'.  HOWEVER YOU ARE PERMITTED ONLY THREE" 
  61. 1320 PRINT "TIMEOUTS PER HALF." 
  62. 1330 PRINT
  63. 1340 PRINT
  64. 1350 DEF FNT(X)=SIN(X)/COS(X)
  65. 1360 DIM R(17)
  66. 1370 FOR I=0 TO 17
  67. 1380 READ R(I)
  68. 1390 NEXT I 
  69. 1400 DATA 9,13,100,0,9,10,12,11,12,0,1,5,3,4,6,2,8,7
  70. 1410 F=0
  71. 1420 Z3=0
  72. 1430 O=0
  73. 1440 L=0
  74. 1450 DIM Z(5,3),P(2),D(2,5) 
  75. 1460 FOR A=0 TO 5 
  76. 1470 FOR B=0 TO 2 
  77. 1480 READ Z(A,B),D(B,A) 
  78. 1490 P(B)=0
  79. 1500 NEXT B 
  80. 1510 READ Z(A,3)
  81. 1520 NEXT A 
  82. 1530 PRINT "DO YOU WANT TO RECEIVE";
  83. 1540 X=1
  84. 1550 INPUT I$
  85. 1560 S=1
  86. 1570 IF LEFT$(I$,1)="Y" THEN S=2
  87. 1580 K=S
  88. 1590 T1=120 
  89. 1600 U2=3 
  90. 1610 U=3
  91. 1620 C=900
  92. 1630 GOSUB 3250
  93. 1640 F1=50
  94. 1650 B=INT(F1+O*20*RND(1)+(1-O)*29*(2-RND(0)^7-RND(0)^(3-Z2)))
  95. 1660 O=0
  96. 1670 Z9=8 
  97. 1680 GOSUB 2490
  98. 1690 L=0
  99. 1700 IF B<=99 THEN 3340
  100. 1710 PRINT "A  TOUCHBACK" 
  101. 1720 B=20 
  102. 1730 L=0
  103. 1740 IF S=2 THEN 1770
  104. 1750 PRINT "MY "; 
  105. 1760 GOTO 1780
  106. 1770 PRINT "YOUR "; 
  107. 1780 GOSUB 4290
  108. 1790 GOSUB 3980
  109. 1800 D=1
  110. 1810 F2=.03 
  111. 1820 O=0
  112. 1830 IF C<=0 THEN 3770
  113. 1840 GOSUB 3530
  114. 1850 Z2=1 
  115. 1860 Z3=.3
  116. 1870 IF C<=F*T1 THEN 3920
  117. 1880 IF C<=0 THEN 3770
  118. 1890 IF L=0 THEN 1910
  119. 1900 PRINT "TIME TO GO--";
  120. 1910 PRINT INT(C/60);"MIN,";C-60*INT(C/60);"SEC.  ";
  121. 1920 PRINT "YOUR PLAY"; 
  122. 1930 GOSUB 4610
  123. 1940 IF S=1 THEN 1980
  124. 1950 IF Q>8 THEN 1920
  125. 1960 M=Q
  126. 1970 GOTO 2000
  127. 1980 Y=Q-8
  128. 1990 IF ABS(Q-10.5)^2>3 THEN 1920
  129. 2000 C=INT(C-L*(5+23*RND(1))) 
  130. 2010 L=1
  131. 2020 IF M=7 THEN 2760
  132. 2030 IF M=8 THEN 2920
  133. 2040 Y1=Y-1 
  134. 2050 IF RND(1)>Z(M-1,Y1) THEN 2240
  135. 2060 A=2
  136. 2070 GOSUB 4020
  137. 2080 IF M<4 THEN 2110
  138. 2090 PRINT "PASS COMPLETE.."; 
  139. 2100 L=SGN(INT(4*RND(1))) 
  140. 2110 IF RND(1)<F2 THEN 3510
  141. 2120 IF G>0 THEN 2210
  142. 2130 IF G=0 THEN 2170
  143. 2140 IF G+B<1 THEN 3170
  144. 2150 PRINT "LOSS OF";-G;
  145. 2160 GOTO 2610
  146. 2170 PRINT "NO GAIN"
  147. 2180 Z9=2 
  148. 2190 GOSUB 2490
  149. 2200 GOTO 2670
  150. 2210 IF B+G>99 THEN 2650
  151. 2220 PRINT "GAIN OF";G; 
  152. 2230 GOTO 2610
  153. 2240 IF M>3 THEN 2280
  154. 2250 A=1
  155. 2260 GOSUB 4020
  156. 2270 GOTO 2120
  157. 2280 IF RND(1)<.06*(2-SGN(Y-3)) THEN 2360
  158. 2290 IF RND(1)<.05+INT(Y/3.5)/5 THEN 2510
  159. 2300 Z9=6 
  160. 2310 GOSUB 2490
  161. 2320 PRINT "PASS INCOMPLETE"
  162. 2330 L=0
  163. 2340 G=0
  164. 2350 GOTO 4120
  165. 2360 PRINT "PASS **INTERCEPTED**";
  166. 2370 A=1
  167. 2380 GOSUB 4020
  168. 2390 IF B<40 THEN 2410
  169. 2400 G=20*(1+SGN(G))
  170. 2410 B=100-B-G
  171. 2420 S=3-S
  172. 2430 Z9=9 
  173. 2440 GOSUB 2490
  174. 2450 IF B<1 THEN 1710
  175. 2460 IF B>99 THEN 2650
  176. 2470 PRINT "AT "; 
  177. 2480 GOTO 3360
  178. 2490 C=C-INT(4+Z9/2*(1+RND(1))) 
  179. 2500 RETURN 
  180. 2510 G=-(5+INT(10*RND(1)))
  181. 2520 PRINT "THE QUARTERBACK ";
  182. 2530 IF RND(1)>.5 THEN 2560
  183. 2540 PRINT "IS THROWN FOR A ";
  184. 2550 GOTO 2110
  185. 2560 G=-(2*G+8) 
  186. 2570 M=5
  187. 2580 A=1
  188. 2590 PRINT "SCRAMBLES FOR A ";
  189. 2600 GOTO 2110
  190. 2610 B=B+G
  191. 2620 PRINT "TO "; 
  192. 2630 GOSUB 4300
  193. 2640 IF B<=99 THEN 2670
  194. 2650 GOSUB 2990
  195. 2660 GOTO 1630
  196. 2670 IF B1>B THEN 4120
  197. 2680 IF B1<B THEN 2730
  198. 2690 IF RND(1)>.5 THEN 2730
  199. 2700 PRINT "**MEASUREMENT**"
  200. 2710 GOSUB 4520
  201. 2720 IF RND(1)<.5 THEN 4120
  202. 2730 GOSUB 3980
  203. 2740 D=0
  204. 2750 GOTO 4120
  205. 2760 IF RND(1)<.06 THEN 2890
  206. 2770 B=B+30+INT(15*(1-RND(1)^3))
  207. 2780 Z9=2 
  208. 2790 GOSUB 2490
  209. 2800 IF B<=99 THEN 2850
  210. 2810 P1=3 
  211. 2820 GOSUB 3030
  212. 2830 IF P1=0 THEN 1710
  213. 2840 GOTO 1630
  214. 2850 PRINT "THE KICK IS ";
  215. 2860 Z2=0 
  216. 2870 S=3-S
  217. 2880 GOTO 3340
  218. 2890 PRINT "**BLOCKED** RECOVERED.."; 
  219. 2900 G=-INT(14*RND(1))
  220. 2910 GOTO 2410
  221. 2920 PRINT "THE PUNT IS ";
  222. 2930 IF RND(1)<.06 THEN 2890
  223. 2940 F1=B 
  224. 2950 Z2=1 
  225. 2960 S=3-S
  226. 2970 Z3=.65 
  227. 2980 GOTO 1650
  228. 2990 PRINT "** TOUCHDOWN**" 
  229. 3000 P1=1 
  230. 3010 P(S)=P(S)+6
  231. 3020 B=130
  232. 3030 PRINT "THE KICK IS ";
  233. 3040 IF RND(1)<(B/132)^4 THEN 3070
  234. 3050 P1=0 
  235. 3060 PRINT "NO "; 
  236. 3070 PRINT "GOOD" 
  237. 3080 P(S)=P(S)+P1 
  238. 3090 GOSUB 3120
  239. 3100 S=3-S
  240. 3110 RETURN 
  241. 3120 PRINT "SCORE: ME";P(1);" YOU";P(2) 
  242. 3130 L=0
  243. 3140 IF X<5 THEN 3160
  244. 3150 IF P(1)<>P(2) THEN 3770
  245. 3160 RETURN 
  246. 3170 PRINT "**SAFETY**" 
  247. 3180 P(3-S)=P(3-S)+2
  248. 3190 F1=30
  249. 3200 S=3-S
  250. 3210 GOSUB 3120
  251. 3220 GOSUB 4440
  252. 3230 PRINT "FROM THE 20"
  253. 3240 GOTO 1650
  254. 3250 GOSUB 4440
  255. 3260 IF S=2 THEN 3330
  256. 3270 PRINT "ON-SIDE"; 
  257. 3280 INPUT I$
  258. 3290 IF LEFT$(I$,1)<>"Y" THEN 3330
  259. 3300 F2=.15 
  260. 3310 Z2=1 
  261. 3320 O=1
  262. 3330 RETURN 
  263. 3340 B=100-B
  264. 3350 PRINT "RECEIVED AT ";
  265. 3360 GOSUB 4300
  266. 3370 IF Z2*RND(1)>Z3 THEN 3490
  267. 3380 IF RND(1)<F2 THEN 3500
  268. 3390 G=5+INT(100*RND(1))
  269. 3400 IF RND(1)<.15 THEN 3430
  270. 3410 G=INT(24*(1-RND(1)^2)) 
  271. 3420 IF G=0 THEN 3490
  272. 3430 B=B+G
  273. 3440 PRINT " AND RUN BACK...";
  274. 3450 L=1
  275. 3460 IF B>99 THEN 2650
  276. 3470 PRINT " TO ";
  277. 3480 GOSUB 4300
  278. 3490 IF RND(1)>F2 THEN 4260
  279. 3500 G=0
  280. 3510 PRINT "**FUMBLE**";
  281. 3520 GOTO 2410
  282. 3530 IF S=1 THEN 3560
  283. 3540 Y=INT(1+3.5*RND(1))
  284. 3550 RETURN 
  285. 3560 M=INT(55*RND(1)/10.5)+1
  286. 3570 IF (B1-B)/(5-D)<3 THEN 3590
  287. 3580 M=INT(6-4*RND(1)^2)
  288. 3590 IF L*F*60>=C THEN 3670
  289. 3600 IF D<4 THEN 3550
  290. 3610 PRINT "I'LL "; 
  291. 3620 IF B<55 THEN 3720
  292. 3630 IF 0<4*RND(1)-B1+B THEN 3750
  293. 3640 PRINT "TRY FOR A FIELD GOAL" 
  294. 3650 M=7
  295. 3660 RETURN 
  296. 3670 IF P(2)*U2<=P(1)*U2 THEN 3600
  297. 3680 PRINT "TIME OUT" 
  298. 3690 U2=U2-1
  299. 3700 GOSUB 4520
  300. 3710 GOTO 3600
  301. 3720 PRINT "PUNT" 
  302. 3730 M=8
  303. 3740 RETURN 
  304. 3750 PRINT "GO FOR IT"
  305. 3760 RETURN 
  306. 3770 IF X<4 THEN 3830
  307. 3780 IF P(1)=P(2) THEN 3830
  308. 3790 PRINT "THE GAME IS OVER" 
  309. 3800 PRINT "FINAL ";
  310. 3810 GOSUB 3120
  311. 3820 STOP 
  312. 3830 PRINT "END OF PERIOD";X
  313. 3840 GOSUB 3120
  314. 3850 F=1-F
  315. 3860 GOSUB 4520
  316. 3870 C=900
  317. 3880 X=X+1
  318. 3890 IF F<>0 THEN 1810
  319. 3900 S=3-K
  320. 3910 GOTO 1580
  321. 3920 IF T1=0 THEN 3770
  322. 3930 PRINT "2 MINUTE WARNING" 
  323. 3940 GOSUB 4520
  324. 3950 T1=0 
  325. 3960 C=120
  326. 3970 GOTO 1880
  327. 3980 B1=B+10
  328. 3990 IF B1<=100 THEN 4010
  329. 4000 B1=100 
  330. 4010 RETURN 
  331. 4020 Q=1.3*(A*RND(1)-1)-.06 
  332. 4030 A=1
  333. 4040 IF Q>=0 THEN 4070
  334. 4050 A=0
  335. 4060 Q=-Q 
  336. 4070 M1=M-1 
  337. 4080 G=D(A,M1)+FNT(Q)*(D(2,M1)-D(A,M1))/3.5
  338. 4090 G=G+INT(RND(1)+.02)*A*100*RND(1)
  339. 4100 G=INT(G)
  340. 4110 RETURN 
  341. 4120 D=D+1
  342. 4130 IF D=5 THEN 4240
  343. 4140 IF D<>  1 THEN 4160
  344. 4150 PRINT "1ST"; 
  345. 4160 IF D<>2 THEN 4180
  346. 4170 PRINT "2ND"; 
  347. 4180 IF D<>3 THEN 4200
  348. 4190 PRINT "3RD"; 
  349. 4200 IF D<4 THEN 4220
  350. 4210 PRINT "4TH"; 
  351. 4220 PRINT " AND";B1-B;"   "; 
  352. 4230 GOTO 1810
  353. 4240 S=3-S
  354. 4250 B=100-B
  355. 4260 IF S=2 THEN 1770
  356. 4270 PRINT "MY "; 
  357. 4280 GOTO 1780
  358. 4290 PRINT "BALL ON ";
  359. 4300 IF B=50 THEN 4400
  360. 4310 V=50-ABS(B-50) 
  361. 4320 C=C-INT(7+3*RND(1))
  362. 4330 IF S=1 THEN 4420
  363. 4340 IF B<50 THEN 4370
  364. 4350 PRINT "MY "; 
  365. 4360 GOTO 4380
  366. 4370 PRINT "YOUR "; 
  367. 4380 PRINT V
  368. 4390 RETURN 
  369. 4400 PRINT "THE 50" 
  370. 4410 RETURN 
  371. 4420 IF B<50 THEN 4350
  372. 4430 GOTO 4370
  373. 4440 IF S=2 THEN 4470
  374. 4450 PRINT "YOU"; 
  375. 4460 GOTO 4480
  376. 4470 PRINT "I"; 
  377. 4480 PRINT " KICK OFF." 
  378. 4490 F2=.06 
  379. 4500 Z2=0 
  380. 4510 RETURN 
  381. 4520 L=0
  382. 4530 PRINT "TIMEOUT CALLED..."
  383. 4540 PRINT  
  384. 4550 RETURN 
  385. 4560 IF U=0 THEN 4600
  386. 4570 U=U-1
  387. 4580 GOSUB 4520
  388. 4590 GOTO 4610
  389. 4600 PRINT "..WRONG, TRY AGAIN" 
  390. 4610 INPUT A
  391. 4620 IF ABS(INT(A))>17 THEN 4600
  392. 4630 Q=R(INT(ABS(A))) 
  393. 4640 IF Q=0 THEN 4600
  394. 4650 IF Q=100 THEN 4560
  395. 4660 RETURN 
  396. 4670 DATA .5,-2,.25,4,.5,13,.55 
  397. 4680 DATA .4,-2,.3,7,.65,15,.75 
  398. 4690 DATA .4,-2,.3,6,.6,15,.35
  399. 4700 DATA .65,-2,.65,6,.6,17,.9 
  400. 4710 DATA .4,2,.7,10,.4,27,.2 
  401. 4720 DATA .1,19,.4,35,.2,100,.1 
  402. 4730 END
  403. ,.3,6,.6,15,.35
  404. 4700 DATA