home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
norge.freeshell.org (192.94.73.8)
/
192.94.73.8.tar
/
192.94.73.8
/
pub
/
computers
/
pcjr
/
games
/
FOOTBALL.BAS
< prev
next >
Wrap
BASIC Source File
|
1987-07-22
|
9KB
|
404 lines
10 KEY OFF:CLS
20 SCREEN 0
30 WIDTH 40
40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
50 PRINT"░┌───────────────────────────────────┐░"
60 PRINT"░│ │░"
70 PRINT"░│ 2084-A.BAS │░"
80 PRINT"░│ FOOTBALL │░"
90 PRINT"░│ │░"
100 PRINT"░│ │░"
110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF │░"
120 PRINT"░│ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ │░"
130 PRINT"░│ █ █ █ █ █ █ │░"
140 PRINT"░│ █ █▄▄▄█ █ █ █ │░"
150 PRINT"░│ █ █ █ █ █ │░"
160 PRINT"░│ ▄▄█▄▄ █ █▄▄▄▄ █▄▄▄█ │░"
170 PRINT"░│ │░"
180 PRINT"░│ International PC Owners │░"
190 PRINT"░│ │░"
200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
210 PRINT"░│ │░"
220 PRINT"░└───────────────────────────────────┘░"
230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
240 PRINT
250 PRINT " PRESS ANY KEY TO CONTINUE
260 A$=INKEY$: IF A$="" THEN 260
270 WIDTH 80
280 CLS
1000 CLS:KEY OFF
1010 PRINT ,"F O O T B A L L"
1020 PRINT
1030 PRINT "WOULD YOU LIKE INSTRUCTIONS FOR PLAYING FOOTBALL";
1040 INPUT I$
1050 IF LEFT$(I$,1)<>"Y" THEN 1330
1060 PRINT
1070 PRINT
1080 PRINT "ON OFFENSE YOU HAVE THE FOLLOWING PERMITTED PLAYS:"
1090 PRINT "PLAY","CODE"
1100 PRINT "RUN","10"
1110 PRINT "PASS","11"
1120 PRINT "SWEEP","12"
1130 PRINT "SCREEN PASS","13"
1140 PRINT "LONG PASS","14"
1150 PRINT "DRAW PLAY","15"
1160 PRINT "PUNT","16"
1170 PRINT "FIELDGOAL","17"
1180 PRINT
1190 PRINT "ON DEFENSE, YOU MAY TRY ONE OF THE FOLLOWING:"
1200 PRINT "DEFENSE","CODE"
1210 PRINT "NORMAL","4","GOOD AGAINST SWEEP AND SCREEN"
1220 PRINT "HOLD","5","GOOD AGAINST RUN, PASS AND DRAW"
1230 PRINT "BLITZ","6","GOOD AGAINST PASS OR LONG PASS"
1240 PRINT "INTERCEPT","7","INCREASES THE ODDS FOR AN INTERCEPTION"
1250 PRINT "BLOCK","8","GIVES YOU A CHANCE TO BLOCK A KICK,"
1260 PRINT " "," ","BUT DECREASES THE DISTANCE RUNBACK."
1270 PRINT :PRINT"HIT ANY KEY"
1280 A$=INKEY$:IF A$="" THEN 1280
1290 PRINT "TO CALL A PARTICULAR PLAY JUST TYPE ITS CODE NUMBER."
1300 PRINT "ALSO, AT ANY TIME DURING PLAY YOU MAY CALL TIME OUT"
1310 PRINT "BY TYPING A '2'. HOWEVER YOU ARE PERMITTED ONLY THREE"
1320 PRINT "TIMEOUTS PER HALF."
1330 PRINT
1340 PRINT
1350 DEF FNT(X)=SIN(X)/COS(X)
1360 DIM R(17)
1370 FOR I=0 TO 17
1380 READ R(I)
1390 NEXT I
1400 DATA 9,13,100,0,9,10,12,11,12,0,1,5,3,4,6,2,8,7
1410 F=0
1420 Z3=0
1430 O=0
1440 L=0
1450 DIM Z(5,3),P(2),D(2,5)
1460 FOR A=0 TO 5
1470 FOR B=0 TO 2
1480 READ Z(A,B),D(B,A)
1490 P(B)=0
1500 NEXT B
1510 READ Z(A,3)
1520 NEXT A
1530 PRINT "DO YOU WANT TO RECEIVE";
1540 X=1
1550 INPUT I$
1560 S=1
1570 IF LEFT$(I$,1)="Y" THEN S=2
1580 K=S
1590 T1=120
1600 U2=3
1610 U=3
1620 C=900
1630 GOSUB 3250
1640 F1=50
1650 B=INT(F1+O*20*RND(1)+(1-O)*29*(2-RND(0)^7-RND(0)^(3-Z2)))
1660 O=0
1670 Z9=8
1680 GOSUB 2490
1690 L=0
1700 IF B<=99 THEN 3340
1710 PRINT "A TOUCHBACK"
1720 B=20
1730 L=0
1740 IF S=2 THEN 1770
1750 PRINT "MY ";
1760 GOTO 1780
1770 PRINT "YOUR ";
1780 GOSUB 4290
1790 GOSUB 3980
1800 D=1
1810 F2=.03
1820 O=0
1830 IF C<=0 THEN 3770
1840 GOSUB 3530
1850 Z2=1
1860 Z3=.3
1870 IF C<=F*T1 THEN 3920
1880 IF C<=0 THEN 3770
1890 IF L=0 THEN 1910
1900 PRINT "TIME TO GO--";
1910 PRINT INT(C/60);"MIN,";C-60*INT(C/60);"SEC. ";
1920 PRINT "YOUR PLAY";
1930 GOSUB 4610
1940 IF S=1 THEN 1980
1950 IF Q>8 THEN 1920
1960 M=Q
1970 GOTO 2000
1980 Y=Q-8
1990 IF ABS(Q-10.5)^2>3 THEN 1920
2000 C=INT(C-L*(5+23*RND(1)))
2010 L=1
2020 IF M=7 THEN 2760
2030 IF M=8 THEN 2920
2040 Y1=Y-1
2050 IF RND(1)>Z(M-1,Y1) THEN 2240
2060 A=2
2070 GOSUB 4020
2080 IF M<4 THEN 2110
2090 PRINT "PASS COMPLETE..";
2100 L=SGN(INT(4*RND(1)))
2110 IF RND(1)<F2 THEN 3510
2120 IF G>0 THEN 2210
2130 IF G=0 THEN 2170
2140 IF G+B<1 THEN 3170
2150 PRINT "LOSS OF";-G;
2160 GOTO 2610
2170 PRINT "NO GAIN"
2180 Z9=2
2190 GOSUB 2490
2200 GOTO 2670
2210 IF B+G>99 THEN 2650
2220 PRINT "GAIN OF";G;
2230 GOTO 2610
2240 IF M>3 THEN 2280
2250 A=1
2260 GOSUB 4020
2270 GOTO 2120
2280 IF RND(1)<.06*(2-SGN(Y-3)) THEN 2360
2290 IF RND(1)<.05+INT(Y/3.5)/5 THEN 2510
2300 Z9=6
2310 GOSUB 2490
2320 PRINT "PASS INCOMPLETE"
2330 L=0
2340 G=0
2350 GOTO 4120
2360 PRINT "PASS **INTERCEPTED**";
2370 A=1
2380 GOSUB 4020
2390 IF B<40 THEN 2410
2400 G=20*(1+SGN(G))
2410 B=100-B-G
2420 S=3-S
2430 Z9=9
2440 GOSUB 2490
2450 IF B<1 THEN 1710
2460 IF B>99 THEN 2650
2470 PRINT "AT ";
2480 GOTO 3360
2490 C=C-INT(4+Z9/2*(1+RND(1)))
2500 RETURN
2510 G=-(5+INT(10*RND(1)))
2520 PRINT "THE QUARTERBACK ";
2530 IF RND(1)>.5 THEN 2560
2540 PRINT "IS THROWN FOR A ";
2550 GOTO 2110
2560 G=-(2*G+8)
2570 M=5
2580 A=1
2590 PRINT "SCRAMBLES FOR A ";
2600 GOTO 2110
2610 B=B+G
2620 PRINT "TO ";
2630 GOSUB 4300
2640 IF B<=99 THEN 2670
2650 GOSUB 2990
2660 GOTO 1630
2670 IF B1>B THEN 4120
2680 IF B1<B THEN 2730
2690 IF RND(1)>.5 THEN 2730
2700 PRINT "**MEASUREMENT**"
2710 GOSUB 4520
2720 IF RND(1)<.5 THEN 4120
2730 GOSUB 3980
2740 D=0
2750 GOTO 4120
2760 IF RND(1)<.06 THEN 2890
2770 B=B+30+INT(15*(1-RND(1)^3))
2780 Z9=2
2790 GOSUB 2490
2800 IF B<=99 THEN 2850
2810 P1=3
2820 GOSUB 3030
2830 IF P1=0 THEN 1710
2840 GOTO 1630
2850 PRINT "THE KICK IS ";
2860 Z2=0
2870 S=3-S
2880 GOTO 3340
2890 PRINT "**BLOCKED** RECOVERED..";
2900 G=-INT(14*RND(1))
2910 GOTO 2410
2920 PRINT "THE PUNT IS ";
2930 IF RND(1)<.06 THEN 2890
2940 F1=B
2950 Z2=1
2960 S=3-S
2970 Z3=.65
2980 GOTO 1650
2990 PRINT "** TOUCHDOWN**"
3000 P1=1
3010 P(S)=P(S)+6
3020 B=130
3030 PRINT "THE KICK IS ";
3040 IF RND(1)<(B/132)^4 THEN 3070
3050 P1=0
3060 PRINT "NO ";
3070 PRINT "GOOD"
3080 P(S)=P(S)+P1
3090 GOSUB 3120
3100 S=3-S
3110 RETURN
3120 PRINT "SCORE: ME";P(1);" YOU";P(2)
3130 L=0
3140 IF X<5 THEN 3160
3150 IF P(1)<>P(2) THEN 3770
3160 RETURN
3170 PRINT "**SAFETY**"
3180 P(3-S)=P(3-S)+2
3190 F1=30
3200 S=3-S
3210 GOSUB 3120
3220 GOSUB 4440
3230 PRINT "FROM THE 20"
3240 GOTO 1650
3250 GOSUB 4440
3260 IF S=2 THEN 3330
3270 PRINT "ON-SIDE";
3280 INPUT I$
3290 IF LEFT$(I$,1)<>"Y" THEN 3330
3300 F2=.15
3310 Z2=1
3320 O=1
3330 RETURN
3340 B=100-B
3350 PRINT "RECEIVED AT ";
3360 GOSUB 4300
3370 IF Z2*RND(1)>Z3 THEN 3490
3380 IF RND(1)<F2 THEN 3500
3390 G=5+INT(100*RND(1))
3400 IF RND(1)<.15 THEN 3430
3410 G=INT(24*(1-RND(1)^2))
3420 IF G=0 THEN 3490
3430 B=B+G
3440 PRINT " AND RUN BACK...";
3450 L=1
3460 IF B>99 THEN 2650
3470 PRINT " TO ";
3480 GOSUB 4300
3490 IF RND(1)>F2 THEN 4260
3500 G=0
3510 PRINT "**FUMBLE**";
3520 GOTO 2410
3530 IF S=1 THEN 3560
3540 Y=INT(1+3.5*RND(1))
3550 RETURN
3560 M=INT(55*RND(1)/10.5)+1
3570 IF (B1-B)/(5-D)<3 THEN 3590
3580 M=INT(6-4*RND(1)^2)
3590 IF L*F*60>=C THEN 3670
3600 IF D<4 THEN 3550
3610 PRINT "I'LL ";
3620 IF B<55 THEN 3720
3630 IF 0<4*RND(1)-B1+B THEN 3750
3640 PRINT "TRY FOR A FIELD GOAL"
3650 M=7
3660 RETURN
3670 IF P(2)*U2<=P(1)*U2 THEN 3600
3680 PRINT "TIME OUT"
3690 U2=U2-1
3700 GOSUB 4520
3710 GOTO 3600
3720 PRINT "PUNT"
3730 M=8
3740 RETURN
3750 PRINT "GO FOR IT"
3760 RETURN
3770 IF X<4 THEN 3830
3780 IF P(1)=P(2) THEN 3830
3790 PRINT "THE GAME IS OVER"
3800 PRINT "FINAL ";
3810 GOSUB 3120
3820 STOP
3830 PRINT "END OF PERIOD";X
3840 GOSUB 3120
3850 F=1-F
3860 GOSUB 4520
3870 C=900
3880 X=X+1
3890 IF F<>0 THEN 1810
3900 S=3-K
3910 GOTO 1580
3920 IF T1=0 THEN 3770
3930 PRINT "2 MINUTE WARNING"
3940 GOSUB 4520
3950 T1=0
3960 C=120
3970 GOTO 1880
3980 B1=B+10
3990 IF B1<=100 THEN 4010
4000 B1=100
4010 RETURN
4020 Q=1.3*(A*RND(1)-1)-.06
4030 A=1
4040 IF Q>=0 THEN 4070
4050 A=0
4060 Q=-Q
4070 M1=M-1
4080 G=D(A,M1)+FNT(Q)*(D(2,M1)-D(A,M1))/3.5
4090 G=G+INT(RND(1)+.02)*A*100*RND(1)
4100 G=INT(G)
4110 RETURN
4120 D=D+1
4130 IF D=5 THEN 4240
4140 IF D<> 1 THEN 4160
4150 PRINT "1ST";
4160 IF D<>2 THEN 4180
4170 PRINT "2ND";
4180 IF D<>3 THEN 4200
4190 PRINT "3RD";
4200 IF D<4 THEN 4220
4210 PRINT "4TH";
4220 PRINT " AND";B1-B;" ";
4230 GOTO 1810
4240 S=3-S
4250 B=100-B
4260 IF S=2 THEN 1770
4270 PRINT "MY ";
4280 GOTO 1780
4290 PRINT "BALL ON ";
4300 IF B=50 THEN 4400
4310 V=50-ABS(B-50)
4320 C=C-INT(7+3*RND(1))
4330 IF S=1 THEN 4420
4340 IF B<50 THEN 4370
4350 PRINT "MY ";
4360 GOTO 4380
4370 PRINT "YOUR ";
4380 PRINT V
4390 RETURN
4400 PRINT "THE 50"
4410 RETURN
4420 IF B<50 THEN 4350
4430 GOTO 4370
4440 IF S=2 THEN 4470
4450 PRINT "YOU";
4460 GOTO 4480
4470 PRINT "I";
4480 PRINT " KICK OFF."
4490 F2=.06
4500 Z2=0
4510 RETURN
4520 L=0
4530 PRINT "TIMEOUT CALLED..."
4540 PRINT
4550 RETURN
4560 IF U=0 THEN 4600
4570 U=U-1
4580 GOSUB 4520
4590 GOTO 4610
4600 PRINT "..WRONG, TRY AGAIN"
4610 INPUT A
4620 IF ABS(INT(A))>17 THEN 4600
4630 Q=R(INT(ABS(A)))
4640 IF Q=0 THEN 4600
4650 IF Q=100 THEN 4560
4660 RETURN
4670 DATA .5,-2,.25,4,.5,13,.55
4680 DATA .4,-2,.3,7,.65,15,.75
4690 DATA .4,-2,.3,6,.6,15,.35
4700 DATA .65,-2,.65,6,.6,17,.9
4710 DATA .4,2,.7,10,.4,27,.2
4720 DATA .1,19,.4,35,.2,100,.1
4730 END
,.3,6,.6,15,.35
4700 DATA