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
/
CPMUG027.ARK
/
FOOTBALL.ASC
< prev
next >
Wrap
Text File
|
1984-04-29
|
8KB
|
373 lines
100 PRINT ,"F O O T B A L L"
110 PRINT
120 PRINT "WOULD YOU LIKE INSTRUCTIONS FOR PLAYING FOOTBALL";
130 INPUT I$
140 IF LEFT$(I$,1)<>"Y" THEN 410
150 PRINT
160 PRINT
170 PRINT "ON OFFENSE YOU HAVE THE FOLLOWING PERMITTED PLAYS:"
180 PRINT "PLAY","CODE"
190 PRINT "RUN","10"
200 PRINT "PASS","11"
210 PRINT "SWEEP","12"
220 PRINT "SCREEN PASS","13"
230 PRINT "LONG PASS","14"
240 PRINT "DRAW PLAY","15"
250 PRINT "PUNT","16"
260 PRINT "FIELDGOAL","17"
270 PRINT
280 PRINT "ON DEFENSE, YOU MAY TRY ONE OF THE FOLLOWING:"
290 PRINT "DEFENSE","CODE"
300 PRINT "NORMAL","4","GOOD AGAINST SWEEP AND SCREEN"
310 PRINT "HOLD","5","GOOD AGAINST RUN, PASS AND DRAW"
320 PRINT "BLITZ","6","GOOD AGAINST PASS OR LONG PASS"
330 PRINT "INTERCEPT","7","INCREASES THE ODDS FOR AN INTERCEPTION"
340 PRINT "BLOCK","8","GIVES YOU A CHANCE TO BLOCK A KICK,"
350 PRINT " "," ","BUT DECREASES THE DISTANCE RUNBACK."
360 PRINT
370 PRINT "TO CALL A PARTICULAR PLAY JUST TYPE ITS CODE NUMBER."
380 PRINT "ALSO, AT ANY TIME DURING PLAY YOU MAY CALL TIME OUT"
390 PRINT "BY TYPING A '2'. HOWEVER YOU ARE PERMITTED ONLY THREE"
400 PRINT "TIMEOUTS PER HALF."
410 PRINT
420 PRINT
430 DEF FNT(X)=SIN(X)/COS(X)
440 DIM R(17)
450 FOR I=0 TO 17
460 READ R(I)
470 NEXT I
480 DATA 9,13,100,0,9,10,12,11,12,0,1,5,3,4,6,2,8,7
490 F=0
500 Z3=0
510 O=0
520 L=0
530 DIM Z(5,3),P(2),D(2,5)
540 FOR A=0 TO 5
550 FOR B=0 TO 2
560 READ Z(A,B),D(B,A)
570 P(B)=0
580 NEXT B
590 READ Z(A,3)
600 NEXT A
610 PRINT "DO YOU WANT TO RECEIVE";
620 X=1
630 INPUT I$
640 S=1
650 IF LEFT$(I$,1)="Y" THEN S=2
660 K=S
670 T1=120
680 U2=3
690 U=3
700 C=900
710 GOSUB 2330
720 F1=50
730 B=INT(F1+O*20*RND(1)+(1-O)*29*(2-RND(0)^7-RND(0)^(3-Z2)))
740 O=0
750 Z9=8
760 GOSUB 1570
770 L=0
780 IF B<=99 THEN 2420
790 PRINT "A TOUCHBACK"
800 B=20
810 L=0
820 IF S=2 THEN 850
830 PRINT "MY ";
840 GOTO 860
850 PRINT "YOUR ";
860 GOSUB 3370
870 GOSUB 3060
880 D=1
890 F2=.03
900 O=0
910 IF C<=0 THEN 2850
920 GOSUB 2610
930 Z2=1
940 Z3=.3
950 IF C<=F*T1 THEN 3000
960 IF C<=0 THEN 2850
970 IF L=0 THEN 990
980 PRINT "TIME TO GO--";
990 PRINT INT(C/60);"MIN,";C-60*INT(C/60);"SEC. ";
1000 PRINT "YOUR PLAY";
1010 GOSUB 3690
1020 IF S=1 THEN 1060
1030 IF Q>8 THEN 1000
1040 M=Q
1050 GOTO 1080
1060 Y=Q-8
1070 IF ABS(Q-10.5)^2>3 THEN 1000
1080 C=INT(C-L*(5+23*RND(1)))
1090 L=1
1100 IF M=7 THEN 1840
1110 IF M=8 THEN 2000
1120 Y1=Y-1
1130 IF RND(1)>Z(M-1,Y1) THEN 1320
1140 A=2
1150 GOSUB 3100
1160 IF M<4 THEN 1190
1170 PRINT "PASS COMPLETE..";
1180 L=SGN(INT(4*RND(1)))
1190 IF RND(1)<F2 THEN 2590
1200 IF G>0 THEN 1290
1210 IF G=0 THEN 1250
1220 IF G+B<1 THEN 2250
1230 PRINT "LOSS OF";-G;
1240 GOTO 1690
1250 PRINT "NO GAIN"
1260 Z9=2
1270 GOSUB 1570
1280 GOTO 1750
1290 IF B+G>99 THEN 1730
1300 PRINT "GAIN OF";G;
1310 GOTO 1690
1320 IF M>3 THEN 1360
1330 A=1
1340 GOSUB 3100
1350 GOTO 1200
1360 IF RND(1)<.06*(2-SGN(Y-3)) THEN 1440
1370 IF RND(1)<.05+INT(Y/3.5)/5 THEN 1590
1380 Z9=6
1390 GOSUB 1570
1400 PRINT "PASS INCOMPLETE"
1410 L=0
1420 G=0
1430 GOTO 3200
1440 PRINT "PASS **INTERCEPTED**";
1450 A=1
1460 GOSUB 3100
1470 IF B<40 THEN 1490
1480 G=20*(1+SGN(G))
1490 B=100-B-G
1500 S=3-S
1510 Z9=9
1520 GOSUB 1570
1530 IF B<1 THEN 790
1540 IF B>99 THEN 1730
1550 PRINT "AT ";
1560 GOTO 2440
1570 C=C-INT(4+Z9/2*(1+RND(1)))
1580 RETURN
1590 G=-(5+INT(10*RND(1)))
1600 PRINT "THE QUARTERBACK ";
1610 IF RND(1)>.5 THEN 1640
1620 PRINT "IS THROWN FOR A ";
1630 GOTO 1190
1640 G=-(2*G+8)
1650 M=5
1660 A=1
1670 PRINT "SCRAMBLES FOR A ";
1680 GOTO 1190
1690 B=B+G
1700 PRINT "TO ";
1710 GOSUB 3380
1720 IF B<=99 THEN 1750
1730 GOSUB 2070
1740 GOTO 710
1750 IF B1>B THEN 3200
1760 IF B1<B THEN 1810
1770 IF RND(1)>.5 THEN 1810
1780 PRINT "**MEASUREMENT**"
1790 GOSUB 3600
1800 IF RND(1)<.5 THEN 3200
1810 GOSUB 3060
1820 D=0
1830 GOTO 3200
1840 IF RND(1)<.06 THEN 1970
1850 B=B+30+INT(15*(1-RND(1)^3))
1860 Z9=2
1870 GOSUB 1570
1880 IF B<=99 THEN 1930
1890 P1=3
1900 GOSUB 2110
1910 IF P1=0 THEN 790
1920 GOTO 710
1930 PRINT "THE KICK IS ";
1940 Z2=0
1950 S=3-S
1960 GOTO 2420
1970 PRINT "**BLOCKED** RECOVERED..";
1980 G=-INT(14*RND(1))
1990 GOTO 1490
2000 PRINT "THE PUNT IS ";
2010 IF RND(1)<.06 THEN 1970
2020 F1=B
2030 Z2=1
2040 S=3-S
2050 Z3=.65
2060 GOTO 730
2070 PRINT "** TOUCHDOWN**"
2080 P1=1
2090 P(S)=P(S)+6
2100 B=130
2110 PRINT "THE KICK IS ";
2120 IF RND(1)<(B/132)^4 THEN 2150
2130 P1=0
2140 PRINT "NO ";
2150 PRINT "GOOD"
2160 P(S)=P(S)+P1
2170 GOSUB 2200
2180 S=3-S
2190 RETURN
2200 PRINT "SCORE: ME";P(1);" YOU";P(2)
2210 L=0
2220 IF X<5 THEN 2240
2230 IF P(1)<>P(2) THEN 2850
2240 RETURN
2250 PRINT "**SAFETY**"
2260 P(3-S)=P(3-S)+2
2270 F1=30
2280 S=3-S
2290 GOSUB 2200
2300 GOSUB 3520
2310 PRINT "FROM THE 20"
2320 GOTO 730
2330 GOSUB 3520
2340 IF S=2 THEN 2410
2350 PRINT "ON-SIDE";
2360 INPUT I$
2370 IF LEFT$(I$,1)<>"Y" THEN 2410
2380 F2=.15
2390 Z2=1
2400 O=1
2410 RETURN
2420 B=100-B
2430 PRINT "RECEIVED AT ";
2440 GOSUB 3380
2450 IF Z2*RND(1)>Z3 THEN 2570
2460 IF RND(1)<F2 THEN 2580
2470 G=5+INT(100*RND(1))
2480 IF RND(1)<.15 THEN 2510
2490 G=INT(24*(1-RND(1)^2))
2500 IF G=0 THEN 2570
2510 B=B+G
2520 PRINT " AND RUN BACK...";
2530 L=1
2540 IF B>99 THEN 1730
2550 PRINT " TO ";
2560 GOSUB 3380
2570 IF RND(1)>F2 THEN 3340
2580 G=0
2590 PRINT "**FUMBLE**";
2600 GOTO 1490
2610 IF S=1 THEN 2640
2620 Y=INT(1+3.5*RND(1))
2630 RETURN
2640 M=INT(55*RND(1)/10.5)+1
2650 IF (B1-B)/(5-D)<3 THEN 2670
2660 M=INT(6-4*RND(1)^2)
2670 IF L*F*60>=C THEN 2750
2680 IF D<4 THEN 2630
2690 PRINT "I'LL ";
2700 IF B<55 THEN 2800
2710 IF 0<4*RND(1)-B1+B THEN 2830
2720 PRINT "TRY FOR A FIELD GOAL"
2730 M=7
2740 RETURN
2750 IF P(2)*U2<=P(1)*U2 THEN 2680
2760 PRINT "TIME OUT"
2770 U2=U2-1
2780 GOSUB 3600
2790 GOTO 2680
2800 PRINT "PUNT"
2810 M=8
2820 RETURN
2830 PRINT "GO FOR IT"
2840 RETURN
2850 IF X<4 THEN 2910
2860 IF P(1)=P(2) THEN 2910
2870 PRINT "THE GAME IS OVER"
2880 PRINT "FINAL ";
2890 GOSUB 2200
2900 STOP
2910 PRINT "END OF PERIOD";X
2920 GOSUB 2200
2930 F=1-F
2940 GOSUB 3600
2950 C=900
2960 X=X+1
2970 IF F<>0 THEN 890
2980 S=3-K
2990 GOTO 660
3000 IF T1=0 THEN 2850
3010 PRINT "2 MINUTE WARNING"
3020 GOSUB 3600
3030 T1=0
3040 C=120
3050 GOTO 960
3060 B1=B+10
3070 IF B1<=100 THEN 3090
3080 B1=100
3090 RETURN
3100 Q=1.3*(A*RND(1)-1)-.06
3110 A=1
3120 IF Q>=0 THEN 3150
3130 A=0
3140 Q=-Q
3150 M1=M-1
3160 G=D(A,M1)+FNT(Q)*(D(2,M1)-D(A,M1))/3.5
3170 G=G+INT(RND(1)+.02)*A*100*RND(1)
3180 G=INT(G)
3190 RETURN
3200 D=D+1
3210 IF D=5 THEN 3320
3220 IF D<> 1 THEN 3240
3230 PRINT "1ST";
3240 IF D<>2 THEN 3260
3250 PRINT "2ND";
3260 IF D<>3 THEN 3280
3270 PRINT "3RD";
3280 IF D<4 THEN 3300
3290 PRINT "4TH";
3300 PRINT " AND";B1-B;" ";
3310 GOTO 890
3320 S=3-S
3330 B=100-B
3340 IF S=2 THEN 850
3350 PRINT "MY ";
3360 GOTO 860
3370 PRINT "BALL ON ";
3380 IF B=50 THEN 3480
3390 V=50-ABS(B-50)
3400 C=C-INT(7+3*RND(1))
3410 IF S=1 THEN 3500
3420 IF B<50 THEN 3450
3430 PRINT "MY ";
3440 GOTO 3460
3450 PRINT "YOUR ";
3460 PRINT V
3470 RETURN
3480 PRINT "THE 50"
3490 RETURN
3500 IF B<50 THEN 3430
3510 GOTO 3450
3520 IF S=2 THEN 3550
3530 PRINT "YOU";
3540 GOTO 3560
3550 PRINT "I";
3560 PRINT " KICK OFF."
3570 F2=.06
3580 Z2=0
3590 RETURN
3600 L=0
3610 PRINT "TIMEOUT CALLED..."
3620 PRINT
3630 RETURN
3640 IF U=0 THEN 3680
3650 U=U-1
3660 GOSUB 3600
3670 GOTO 3690
3680 PRINT "..WRONG, TRY AGAIN"
3690 INPUT A
3700 IF ABS(INT(A))>17 THEN 3680
3710 Q=R(INT(ABS(A)))
3720 IF Q=0 THEN 3680
3730 IF Q=100 THEN 3640
3740 RETURN
3750 DATA .5,-2,.25,4,.5,13,.55
3760 DATA .4,-2,.3,7,.65,15,.75
3770 DATA .4,-2,.3,6,.6,15,.35
3780 DATA .65,-2,.65,6,.6,17,.9
3790 DATA .4,2,.7,10,.4,27,.2
3800 DATA .1,19,.4,35,.2,100,.1
3810 END