Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | 100 REM BASEBALL - 1977 |
2 | 120 REM =============== | |
3 | 140 REM | |
4 | 160 REM | |
5 | 180 REM K. M. BOWYER | |
6 | 200 REM 1000 CEDAR AVE. | |
7 | 220 REM LEWES, DELAWARE | |
8 | 240 REM 19958 | |
9 | 260 REM | |
10 | 280 REM <<<DEFINE DIMENSIONS>>> | |
11 | 300 REM | |
12 | 320 DIM N$(9),P9$(9,4),H9$(9,15),V9$(9,15),V(16),H(16) | |
13 | 340 DIM I1(16),B3(7),Q(7) | |
14 | 360 DIM S1$(5,1) | |
15 | 380 REM | |
16 | 400 REM <<<GET FORMALITIES OUT OF THE WAY>>> | |
17 | 420 REM | |
18 | 440 PRINT "WELCOME TO SPITBALL STATIUM"\PRINT | |
19 | 460 RANDOMIZE | |
20 | 480 PRINT "TODAY OUR HOMETOWN 'SPITS' MEET THE VISITING :"; | |
21 | 500 INPUT N$\PRINT | |
22 | 520 PRINT "WHILE THE SPITS TAKE THE FIELD, LETS LOOK AT THE LINEUPS." | |
23 | 540 PRINT\PRINT "BAT","POS","SPITS",,N$\PRINT | |
24 | 560 FOR I=1 TO 9 | |
25 | 580 READ P9$(I),H9$(I) | |
26 | 600 PRINT I,P9$(I),H9$(I),, | |
27 | 620 INPUT V9$(I) | |
28 | 640 NEXT I | |
29 | 660 REM | |
30 | 680 REM <<<SET UP CONSTANTS FOR GAME>>> | |
31 | 700 REM | |
32 | 720 Q(1)=37\Q(2)=50\Q(3)=6\Q(4)=4\Q(5)=2\Q(6)=1 | |
33 | 740 Q(7)=Q(1)+Q(2)+Q(3)+Q(4)+Q(5)+Q(6) | |
34 | 760 S=0\FOR I=1 TO 6\S=S+Q(I)\Q(I)=INT(S*100/Q(7))\NEXT I | |
35 | 780 I1=0\T=1\O=3\FOR I=1 TO 16\H(I)=0\V(I)=0\NEXT I\B1=1\B2=1 | |
36 | 800 REM | |
37 | 820 REM <<<TOP OF INNING>>> | |
38 | 840 REM | |
39 | 860 GOTO 3440 | |
40 | 880 REM | |
41 | 900 REM <<<VISITING BATTER UP>>> | |
42 | 920 REM <<<PRINT DIAAMOND, SCORE, COUNT AND BATTER>>> | |
43 | 940 REM | |
44 | 960 GOSUB 3740 | |
45 | 980 PRINT\PRINT N$;" BATTER IS - ";V9$(B1);"." | |
46 | 1000 REM | |
47 | 1020 REM <<<VISITOR BATTER SWINGS>>> | |
48 | 1040 REM | |
49 | 1060 GOSUB 2280\PRINT "YOUR SWING [(S)TEAL OR <CR>]: "; | |
50 | 1080 PRINT\PRINT ">"; | |
51 | 1100 IF S$="S" GOTO 1980\Q(7)=100*RND(1) | |
52 | 1120 IF Q(7)>Q(1) GOTO 1160\B=B+1\PRINT "BALL";B\IF B<4 GOTO 960 | |
53 | 1140 GOSUB 2680\GOTO 960 | |
54 | 1160 IF Q(7)>Q(2) GOTO 1240\S=S+1\PRINT "STRIKE";S | |
55 | 1180 IF S=3 GOTO 1200\GOTO 960 | |
56 | 1200 O=O+1\B1=B1+1\IF B1=10 GOTO 1220\GOTO 3400 | |
57 | 1220 B1=1\GOTO 3400 | |
58 | 1240 IF Q(7)>Q(3) GOTO 1300\H5=1 | |
59 | 1260 P=40\GOSUB 3320\IF P=1 GOTO 4040 | |
60 | 1280 GOSUB 3020\GOTO 960 | |
61 | 1300 IF Q(7)>Q(4) GOTO 1320\H5=2\GOTO 1260 | |
62 | 1320 IF Q(7)>Q(5) GOTO 1340\H5=3\GOTO 1260 | |
63 | 1340 H5=4\GOTO 1260 | |
64 | 1360 REM | |
65 | 1380 REM <<<BOTTOM OF INNING>>> | |
66 | 1400 REM <<<PRINT DIAMOND, SCORE, COUNT AND BATTER>>> | |
67 | 1420 REM | |
68 | 1440 GOSUB 3740 | |
69 | 1460 PRINT\PRINT "SPITS BATTER IS - ";H9$(B2);"." | |
70 | 1480 REM | |
71 | 1500 REM <<<VISITING PITCHER PITCHES>>> | |
72 | 1520 REM | |
73 | 1540 GOSUB 2280\PRINT "YOUR PITCH [<CR>]: "; | |
74 | 1560 PRINT\PRINT ">"; | |
75 | 1580 REM | |
76 | 1600 REM <<<HOME TEAM STEAL GENERATOR>>> | |
77 | 1620 REM | |
78 | 1640 IF B3(1)+B3(2)+B3(3)=0 GOTO 1700 | |
79 | 1660 P=8\GOSUB 3320\IF P=0 GOTO 1700 | |
80 | 1680 GOTO 1980 | |
81 | 1700 Q(7)=100*RND(1) | |
82 | 1720 IF Q(7)>Q(1) GOTO 1780\B=B+1\PRINT "BALL";B | |
83 | 1740 IF B<4 GOTO 1440 | |
84 | 1760 GOSUB 2680\GOTO 1440 | |
85 | 1780 IF Q(7)>Q(2) GOTO 1860 | |
86 | 1800 S=S+1\PRINT "STRIKE";S\IF S=3 GOTO 1820\GOTO 1440 | |
87 | 1820 O=O+1\B2=B2+1\IF B2=10 GOTO 1840\GOTO 3440 | |
88 | 1840 B2=1\GOTO 3400 | |
89 | 1860 IF Q(7)>Q(3) GOTO 1900\H5=1 | |
90 | 1880 GOSUB 3020\GOTO 1440 | |
91 | 1900 IF Q(7)>Q(4) GOTO 1920\H5=2\GOTO 1880 | |
92 | 1920 IF Q(7)>Q(5) GOTO 1940\H5=3\GOTO 1880 | |
93 | 1940 H5=4\GOTO 1880 | |
94 | 1960 REM | |
95 | 1980 REM <<<STEAL HANDLER>>> | |
96 | 2000 REM | |
97 | 2020 FOR I=3 TO 1 STEP -1\IF B3(I)<>0 GOTO 2080\NEXT I | |
98 | 2040 PRINT "CAN'T STEAL - NOBODY ON BASE !" | |
99 | 2060 IF T=1 GOTO 1440\GOTO 960 | |
100 | 2080 IF T=1 GOTO 2100\PRINT V9$(B3(I));\GOTO 2120 | |
101 | 2100 PRINT H9$(B3(I)); | |
102 | 2120 PRINT " ATTEMPTS TO STEAL - HE IS "; | |
103 | 2140 P=80-20*I\GOSUB 3320\IF P=1 GOTO 2180 | |
104 | 2160 PRINT "OUT !"\O=O+1\B3(I)=0\GOTO 3440 | |
105 | 2180 PRINT "SAFE !"\B3(I+1)=B3(I)\B3(I)=0 | |
106 | 2200 IF I<>3 GOTO 2060\GOSUB 2360\GOTO 2060 | |
107 | 2220 REM | |
108 | 2240 REM <<<PRINT COUNT SUBROUTINE>>> | |
109 | 2260 REM | |
110 | 2280 PRINT " B S O"\PRINT " ";B;" ";S;" ";O | |
111 | 2300 PRINT | |
112 | 2320 RETURN | |
113 | 2340 REM | |
114 | 2360 REM <<<RUN HANDLER>>> | |
115 | 2380 REM | |
116 | 2400 IF B3(4)+B3(5)+B3(6)+B3(7)<>0 GOTO 2420\RETURN | |
117 | 2420 FOR I=7 TO 4 STEP -1\IF B3(I)=0 GOTO 2480 | |
118 | 2440 IF T=1 GOTO 2520 | |
119 | 2460 PRINT V9$(B3(I));" SCORES"\V(I1)=V(I1)+1\V(16)=V(16)+1 | |
120 | 2480 B3(I)=0\NEXT I | |
121 | 2500 RETURN | |
122 | 2520 PRINT H9$(B3(I));" SCORES"\H(I1)=H(I1)+1\H(16)=H(16)+1 | |
123 | 2540 GOTO 2480 | |
124 | 2560 REM | |
125 | 2580 REM <<<CLEAR BASES, OUTS, STRIKES AND BALLS SUBROUTINE>>> | |
126 | 2600 REM | |
127 | 2620 FOR I=1 TO 7\B3(I)=0\NEXT I | |
128 | 2640 B=0\S=0\O=0\RETURN | |
129 | 2660 REM | |
130 | 2680 REM <<<WALK HANDLER>>> | |
131 | 2700 REM | |
132 | 2720 IF T=1 GOTO 2740\PRINT V9$(B1);" WALKS"\GOTO 2760 | |
133 | 2740 PRINT H9$(B2);" WALKS" | |
134 | 2760 B=0\S=0\IF B3(1)<>0 GOTO 2860 | |
135 | 2780 B3(1)=B1 | |
136 | 2800 IF T=0 GOTO 2820\B2=B2+1\IF B2<>10 GOTO 2840\B2=1\GOTO 2840 | |
137 | 2820 B1=B1+1\IF B1<>10 GOTO 2840\B1=1 | |
138 | 2840 RETURN | |
139 | 2860 IF B3(2)<>0 GOTO 2900 | |
140 | 2880 B3(2)=B3(1)\GOTO 2780 | |
141 | 2900 IF B3(3)<>0 GOTO 2940 | |
142 | 2920 B3(3)=B3(2)\GOTO 2880 | |
143 | 2940 B3(4)=B3(3)\GOSUB 2400\GOTO 2920 | |
144 | 2960 REM | |
145 | 2980 REM <<<HIT HANDLER>>> | |
146 | 3000 REM | |
147 | 3020 B=0\S=0\FOR I=1 TO H5 | |
148 | 3040 FOR J=7 TO 2 STEP -1 | |
149 | 3060 B3(J)=B3(J-1) | |
150 | 3080 NEXT J\B3(1)=0 | |
151 | 3100 NEXT I | |
152 | 3120 IF T=1 GOTO 3180 | |
153 | 3140 PRINT V9$(B1);\B3(H5)=B1 | |
154 | 3160 B1=B1+1\IF B1<>10 GOTO 3220\B1=1\GOTO 3220 | |
155 | 3180 PRINT H9$(B2);\B3(H5)=B2 | |
156 | 3200 B2=B2+1\IF B2<>10 GOTO 3220\B2=1 | |
157 | 3220 PRINT " GETS";H5;" BASE HIT"\GOSUB 2400 | |
158 | 3240 RETURN | |
159 | 3260 REM | |
160 | 3280 REM <<<PROBABILITY HANDLER>>> | |
161 | 3300 REM | |
162 | 3320 IF P/100<=RND(1) GOTO 3340\P=1\GOTO 3360 | |
163 | 3340 P=0 | |
164 | 3360 RETURN | |
165 | 3380 REM | |
166 | 3400 REM <<<OUT DISPATCHER>>> | |
167 | 3420 REM | |
168 | 3440 S=0\B=0\IF O=>3 GOTO 3460\IF T=1 GOTO 1440\GOTO 960 | |
169 | 3460 O=0\IF T=1 GOTO 3520 | |
170 | 3480 IF I1<9 GOTO 3500\IF V(16)=>H(16) GOTO 3500\GOTO 3600 | |
171 | 3500 PRINT\PRINT "BOTTOM OF INNING NO.";I1\T=1\GOSUB 2620\GOTO 1440 | |
172 | 3520 IF I1<9 GOTO 3560\IF I1=13 GOTO 3660 | |
173 | 3540 IF V(16)=H(16) GOTO 3560\GOTO 3600 | |
174 | 3560 PRINT\PRINT "TOP OF INNING NO.";\I1=I1+1 | |
175 | 3580 T=0\PRINT I1\GOSUB 2620\GOTO 960 | |
176 | 3600 PRINT\PRINT "END OF GAME" | |
177 | 3620 FOR I=1 TO 7\B3(I)=0\NEXT I | |
178 | 3640 PRINT "FINAL SCORE:"\GOSUB 3740\STOP | |
179 | 3660 PRINT\PRINT "GAME CALLED DUE TO DARKNESS"\GOTO 3620 | |
180 | 3680 REM | |
181 | 3700 REM <<<DISPLAAY SUBROUTINE>>> | |
182 | 3720 REM | |
183 | 3740 PRINT\PRINT | |
184 | 3760 IF B3(2)=0 GOTO 3780\PRINT " [X]"," : INNING",\GOTO 3800 | |
185 | 3780 PRINT " [O]"," : INNING", | |
186 | 3800 FOR I=1 TO I1\PRINT I;\NEXT I\PRINT " R" | |
187 | 3820 IF B3(3)=0 GOTO 3840\PRINT "[X] ";\GOTO 3860 | |
188 | 3840 PRINT "[O] "; | |
189 | 3860 IF B3(1)=0 GOTO 3880\PRINT "[X] : ";\GOTO 3900 | |
190 | 3880 PRINT "[O] : "; | |
191 | 3900 PRINT N$,\FOR I=1 TO I1\PRINT V(I);\NEXT I\PRINT " ";V(16) | |
192 | 3920 PRINT " [O]"," : SPITS",\FOR I=1 TO I1\PRINT H(I);\NEXT I | |
193 | 3940 PRINT " ";H(16) | |
194 | 3960 RETURN | |
195 | 3980 REM | |
196 | 4000 REM <<<FLY BALL & ERROR HANDELR>>> | |
197 | 4020 REM | |
198 | 4040 PRINT "FLY BALL CAUGHT BY "; | |
199 | 4060 P=1+INT(9*RND(1))\IF T=1 GOTO 4100 | |
200 | 4080 PRINT H9$(P);" (";P9$(P);")"\GOTO 4120 | |
201 | 4100 PRINT V9$(P);" (";P9$(P);")" | |
202 | 4120 P=15\GOSUB 3320\IF P=1 GOTO 4140\O=O+1\GOTO 3440 | |
203 | 4140 PRINT "*ERROR* HE DROPPED THE BALL!! - SAFE AT FIRST!" | |
204 | 4160 H5=1\GOSUB 3020\GOTO 3440 | |
205 | 4180 REM | |
206 | 4200 REM <<<DEFINE POSITIONS AND HOME TEAM PLAYERS>>> | |
207 | 4220 REM | |
208 | 4240 DATA "1B","LEFTY O'TOOLE","2B","DEAD EYE HERB" | |
209 | 4260 DATA "SS","SCOOP JAMES","3B","DIGGER DAN" | |
210 | 4280 DATA "LF","SCRATCHER SAM","CF","BLIND BERT" | |
211 | 4300 DATA "RF","SLUGGER MCGHEE","C ","POP UP PETE" | |
212 | 4320 DATA "P ","WILD WILLIE" | |
213 | 4340 REM | |
214 | 4360 REM <<<END OF PROGRAM>>> | |
215 | 4380 REM | |
216 | 4400 END |