File FOOTBA.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

10 REM     <<  GAME OF FOOTBALL  >>
20 REM
30 DIM W$(20),X$(20),Y$(15),S(3)
40 PRINT\PRINT "WELCOME TO 'GRUNT AND GROAN' FOOTBALL STADIUM."\PRINT
50 PRINT\PRINT
60 PRINT "THIS GAME WILL BE BETWEEN YOU AND THE COMPUTER."\PRINT
70 PRINT "WHAT IS YOUR TEAM'S NAME ";\INPUT W$
80 PRINT\PRINT "NOW ";W$;" NEEDS A QUARTERBACK (THAT'S YOU)."
90 PRINT "WHAT IS YOUR NAME ";\INPUT Y$\PRINT
100 PRINT "WHAT DO YOU WANT TO CALL MY TEAM ";\INPUT X$\PRINT
110 PRINT "SO IT WILL BE ";W$;" AGAINST ";X$;"."\PRINT
120 PRINT "TO CALL A PLAY, TYPE IN ONE OF THE FOLLOWING AND"
130 PRINT "PRESS 'RETURN'."\PRINT
140 PRINT "SR - SIMPLE RUN";TAB(30);"P  - PUNT"
150 PRINT "TR - TRICKY RUN";TAB(30);"QK - QUICK KICK"
160 PRINT "SP - SHORT PASS";TAB(30);"FG - FIELD GOAL TRY"
170 PRINT "LP - LONG PASS"\PRINT
180 A=51\B=0\C=0\S(1)=0\S(3)=0
190 PRINT\PRINT "PRESS 'RETURN' FOR COIN TOSS: ";
200 RANDOMIZE
210 INPUT D\IF RND(0)<.5 THEN 230
220 PRINT X$;" WON THE TOSS."\GOTO 1640
230 PRINT W$;" WON THE TOSS."
240 PRINT\PRINT W$;" - BALL ON THEIR OWN 20."
250 G=1\F=20\H=20\I=1\GOTO 1780
260 PRINT "YOUR CALL, ";Y$;" ";\INPUT J$
270 J=0\IF J$="SR" THEN 360\IF J$="TR" THEN 350
280 IF J$="SP" THEN 340\IF J$="LP" THEN 330\IF J$="P" THEN 320
290 IF J$="QK" THEN 310\IF J$="FG" THEN 300\GOTO 370
300 J=J+1
310 J=J+1
320 J=J+1
330 J=J+1
340 J=J+1
350 J=J+1
360 J=J+1
370 IF J<>0 THEN 380\PRINT J$;" ??"\GOTO 260
380 K=RND(0)
390 K=K*(.97+G*.03)
400 C=C+1
410 IF C<>26 THEN 420\PRINT\PRINT "<< START OF 2ND QUARTER >>"\PRINT
420 IF C<>76 THEN 430\PRINT\PRINT "<< START OF 4TH QUARTER >>"\PRINT
430 IF C=101 THEN 530
440 IF C<>51 THEN 610\PRINT\PRINT "<< * * HALF TIME * * >>"\PRINT
450 GOSUB 2360\PRINT
460 IF S(3)>S(1) THEN 480
470 PRINT\PRINT W$;\GOTO 490
480 PRINT\PRINT X$;
490 PRINT " WILL RECEIVE THE BALL IN THE 3RD QUARTER."
500 PRINT\PRINT "ENJOY THE HALFTIME ACTIVITES."
510 PRINT "PRESS 'RETURN' TO START 2ND HALF";\INPUT A1\PRINT
520 IF S(3)>S(1) THEN 1640\GOTO 240
530 PRINT\PRINT "*** END OF GAME ***"
540 PRINT "FINAL SCORE:     ";W$;S(3);"     ";X$;S(1)
550 IF S(3)>S(1) THEN 580
560 PRINT\PRINT "GOOD TRY ";Y$;". BETTER LUCK NEXT TIME."
570 STOP
580 PRINT\PRINT Y$;", YOU PLAYED LIKE A PRO, BEATING ";X$
590 PRINT "(WHO HAD COMPUTER HELP!)."
600 STOP
610 M=RND(0)
620 N=0
630 IF J>4 THEN 690
640 IF J=1 THEN 810
650 IF J=2 THEN 860
660 PRINT "PASS PLAY -----"
670 IF J=3 THEN 930
680 GOTO 1090
690 REM PUNT
700 O=INT(K*30+30)
710 IF J=7 THEN 2480
720 IF I=4 THEN 740
730 O=INT(O*1.3)
740 PRINT "PUNT GOOD FOR ";O;" YARDS."
750 IF I<4 THEN 790
760 P=INT(M^2*20)+(1-G)*INT(K^2*30)
770 PRINT "RUN BACK OF ";P;" YARDS."
780 O=O-P
790 N=-1
800 GOTO 1260
810 REM SIMPLE RUN
820 PRINT "RUNNING PLAY -----"
830 O=INT(24*(K-.5)^3+3)
840 IF M<.05 THEN 900
850 GOTO 1150
860 REM TRICKY RUN
870 PRINT "RUNNING PLAY -----"
880 O=INT(20*K-5)
890 IF M>.1 THEN 1150
900 N=-1
910 PRINT " ## FUMBLE AFTER "
920 GOTO 1150
930 REM SHORT PASS
940 O=INT(160*(M-.5)^3+7.5)
950 IF K<.05 THEN 1000
960 IF K<.15 THEN 1060
970 IF K<.55 THEN 1030
980 PRINT "COMPLETE."
990 GOTO 1150
1000 PRINT "INTERCEPTED!!"
1010 N=-1
1020 GOTO 1260
1030 PRINT "INCOMPLETE."
1040 O=0
1050 GOTO 1150
1060 PRINT "PASSER TACKLED."
1070 O=-INT(10*M)
1080 GOTO 1150
1090 REM LONG PASS
1100 O=INT(160*(M-.5)^3+30)
1110 IF M<.1 THEN 1000
1120 IF M<.25 THEN 1060
1130 IF M<.7 THEN 1030
1140 GOTO 980
1150 REM RESULT OF PLAY
1160 Q=F+G*O
1170 IF Q>100 THEN 1340
1180 IF Q<=0 THEN 1910
1190 IF O<0 THEN 1230
1200 IF O=0 THEN 1250
1210 PRINT "GAIN OF ";O
1220 GOTO 1260
1230 PRINT "LOSS OF ";-O
1240 GOTO 1260
1250 PRINT "NO GAIN"
1260 F=F+G*O
1270 IF F<=0 THEN 1910
1280 IF F>50 THEN 1310
1290 PRINT "BALL ON ";W$;F
1300 GOTO 1520
1310 IF F>=100 THEN 1340
1320 PRINT "BALL ON ";X$;100-F
1330 GOTO 1520
1340 IF G<0 THEN 1420
1350 IF N<0 THEN 1400
1360 PRINT "TOUCHDOWN!!!"
1370 G=-1
1380 GOSUB 2400
1390 GOTO 1640
1400 PRINT "TOUCHBACK FOR ";X$
1410 GOTO 1640
1420 IF N<0 THEN 1490
1430 PRINT "SAFETY"
1440 GOSUB 2350
1450 PRINT "TOUCHDOWN FOR ";W$
1460 F=40
1470 G=1
1480 GOTO 1670
1490 PRINT "TOUCHDOWN, ";W$
1500 GOSUB 2400
1510 GOTO 1640
1520 I=I+1
1530 IF N>=0 THEN 1600
1540 IF G>0 THEN 1580
1550 PRINT\PRINT W$;" BALL."
1560 G=1
1570 GOTO 1670
1580 PRINT\PRINT X$;" BALL."
1590 GOTO 1660
1600 IF G*(F-H)>=10 THEN 1670
1610 IF I<5 THEN 1790
1620 IF G<0 THEN 1550
1630 GOTO 1580
1640 F=80
1650 PRINT X$;" BALL ON THEIR OWN 20."
1660 G=-1
1670 I=1
1680 PRINT "FIRST AND 10"
1690 IF G<0 THEN 1730
1700 IF F<90 THEN 1760
1710 H=90
1720 GOTO 1890
1730 IF F>10 THEN 1760
1740 H=10
1750 GOTO 1890
1760 H=F
1770 GOTO 1890
1780 IF I=1 THEN 1820
1790 IF I=2 THEN 1840
1800 IF I=3 THEN 1860
1810 IF I=4 THEN 1880
1820 PRINT "FIRST AND";10+G*(H-F)
1830 GOTO 1890
1840 PRINT "SECOND AND";10+G*(H-F)
1850 GOTO 1890
1860 PRINT "THIRD AND";10+G*(H-F)
1870 GOTO 1890
1880 PRINT "FOURTH AND";10+G*(H-F)
1890 PRINT\IF G>0 THEN 260
1900 FOR A1=1 TO 400\NEXT A1\GOTO 2090
1910 IF N<0 THEN 2030
1920 IF G>0 THEN 1970
1930 PRINT "TOUCHDOWN!!!"
1940 G=1
1950 GOSUB 2400
1960 GOTO 240
1970 PRINT "SAFETY!!"
1980 GOSUB 2350
1990 PRINT X$;"BALL ON THEIR OWN 40."
2000 F=60
2010 G=-1
2020 GOTO 1670
2030 IF G>0 THEN 2060
2040 PRINT "TOUCHBACK FOR ";W$
2050 GOTO 240
2060 PRINT "TOUCHDOWN, ";X$
2070 GOSUB 2400
2080 GOTO 240
2090 G=-1
2100 IF I>1 THEN 2160
2110 IF RND(0)>1/3 THEN 2140
2120 J=3
2130 GOTO 2330
2140 J=1
2150 GOTO 2330
2160 IF I<4 THEN 2230
2170 IF F<=30 THEN 2200
2180 J=5
2190 GOTO 2330
2200 IF 10+F-H<3 THEN 2110
2210 J=7
2220 GOTO 2330
2230 IF 10+F-H<5 THEN 2110
2240 IF F>H THEN 2300
2250 IF RND(0)>1/2 THEN 2280
2260 J=2
2270 GOTO 2330
2280 J=4
2290 GOTO 2330
2300 IF RND(0)>1/4 THEN 2320
2310 GOTO 2260
2320 GOTO 2280
2330 GOTO 380
2340 REM KEEP SCORE
2350 S(2-G)=S(2-G)+2
2360 PRINT\PRINT "******************************"\PRINT
2370 PRINT "SCORE : ";W$,S(3),X$,S(1)
2380 PRINT\PRINT "******************************"\PRINT
2390 RETURN
2400 IF RND(0)>.8 THEN 2440
2410 PRINT "KICK IS GOOD."
2420 S(2-G)=S(2-G)+7
2430 GOTO 2360
2440 PRINT "KICK IS OFF TO SIDE. NO GOOD."
2450 S(2-G)=S(2-G)+6
2460 GOTO 2360
2470 PRINT
2480 REM FIELD GOAL
2490 PRINT "PLACE KICK"
2500 N=-1
2510 IF K>.15 THEN 2570
2520 PRINT "KICK IS BLOCKED!"
2530 IF G=-1 THEN 240
2540 IF G=0 THEN 240
2550 IF G=1 THEN 1640
2560 IF G=2 THEN 2570
2570 IF G<0 THEN 2680
2580 IF F+O>=110 THEN 2640
2590 IF F+O<80 THEN 2620
2600 PRINT "KICK IS OFF TO THE RIGHT SIDE."
2610 GOTO 1400
2620 PRINT "KICK IS OFF TO THE LEFT SIDE."
2630 GOTO 1260
2640 PRINT "FIELD GOAL!!!"
2650 S(3)=S(3)+3
2660 GOSUB 2360
2670 GOTO 1640
2680 IF F-O<=-10 THEN 2720
2690 IF F-O>20 THEN 2620
2700 PRINT "KICK IS WOBBLY --- NO GOOD!!"
2710 GOTO 240
2720 PRINT "FIELD GOAL!!!"
2730 S(1)=S(1)+3
2740 GOSUB 2360
2750 GOTO 240
2760 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search