| 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 |