The American PaSTime Baseball Simulator
The American PaSTime Baseball Simulator may be freely distributed;
it is not to be sold for profit. If distributed, all related
files, including this one, must be included with it. The American
PaSTime Baseball Simulator is copyright (c) 1988, Eric A. Lindow.
I anticipate that this simulator will continue to receive
significant enhancement, both in improvement to existing programs
and by completion of other related programs. If you would like to
obtain the latest version of this software, send $7 ( or $4, a
blank disk and a stamped, self-addressed disk mailer ) to:
Eric A. Lindow
26 Downer Avenue
Scarsdale, NY, 10583
I can be reached on Compuserve at 76227,232 for comments,
I would like to offer thanks to the following people, who
have helped immeasurably with the design, implementation, and
testing of this program: Mark Barr, Alex Patton, Robert
Seulowitz, and Adrian Williams, and the students of The Day
I would also like to thank the good folks at Megamax for
their excellent 'Laser C' package, which has made development of
this program a pleasure.
ABOUT THIS PROGRAM
----- ---- -------
The American PaSTime Baseball Simulator provides a very rich
and accurate simulation of the game of baseball, from the
viewpoint of the manager. Results are based on the actual
statistics of the players entered; variation from reality will be
approximately the same as the actual variation players experience
in reality. In the short term, just about anything possible can
happen, while in the long term, players will tend to perform
pretty much the way did on the stats that were entered. It is
possible to play a fully managed game in 10-15 minutes, or as many
automatic games as you like in less than a minute each. Thus it is
very easy with this system ( including the input and statistics
programs ) to play entire seasons, using either real, drafed, or
imaginary teams, comparing the long term strength of teams,
testing theories of lineups, pitching, and so on.
To start the game, open BBGAME.PRG. You will first be asked
to select visiting and home teams from the file selector box. By
convention, teams have an extension of .BB and should be stored in
a folder called TEAMS.BB ( this is not required by the program,
but attempting to load something other than a valid team file will
probably cause the program to bomb ). NOTE: In current versions of
this game, both teams MUST come from the SAME drive and folder if
you expect to save the results of the game correctly.
Once the two teams have been chosen, each team selects its
starting pitcher by clicking on its choice with the mouse.
Pitchers who have pitched recently but are available ( at a
slightly diminished efficiency ) will have a small 't' before
Next each team chooses its lineup. You are given a choice of
three lineups- typically #1 will be for use against right-handed
pitching, #2 against left-handed, and #3 will use substitute
players. Note that these lineups are not fixed- they may be freely
changed as much as you want before the game starts.
Once starting pitchers and lineups have been chosen, you
enter the 'pregame' phase. At this time the screen is drawn
showing lineups, bench and bullpen players for both teams. From
now on, control of the screen, keyboard and mouse will alternate
back and forth between the team in the field and the team at bat.
You will be able to tell which team is currently in control by
looking at the second line from the bottom of the screen: the team
in control will have options listed, while the area under the
other team will be blank.
When it is in control, a team has the following options
1) Pass on control -- this can be done by pressing the space
bar, or any other non-assigned key, or by clicking the mouse
button in an unnassigned area of the screen. If the team in
control is in the field, any of these actions will transfer
control to the at-bat team. If the team in control is at bat,
pressing a key will cause the at bat to take place, while clicking
the mouse button will return control to the in the field team
without the at-bat taking place.
2) Check statistics -- click on the name of a player in the
team's lineup, bench or bullpen boxes to get an alert box showing
important statistics for that hitter or pitcher.
3) Changing lineups -- to change any player in the lineup, you
point the arrow at the replacement player on the bench and press
and hold down the left mouse button. A box about the size of a
player name will appear. While continuing to hold down the mouse
button, drag this box so that the tip of the arrow points
somewhere in the center of the name of the player to be replaced
in the lineup box. Release the mouse button and the new player's
name will be entered into the lineup. Note that if you are still
in the pregame phase, the old player's name will appear in the
bench box, signifying that he is still available for play. If the
game has actually begun, the old player will not be able to play
again, of course, and his name will not reappear in the bench box.
(4) Changing positions -- positions in the lineup may be freely
swapped by pointing to one position, holding down the left mouse
button, and dragging the arrow/box combination so that the tip of
the arrow is within the box of the position to be swapped. The
effect of the swaps will be reflected in the number that appears
just below and towards the center of the screen from the lineup
box. This number is an overall team range rating, based on the
individual range ratings of the players currently in the lineups.
The lower this number is, the better the defensive range is of the
players on the field.
5) Pitchers -- when a pitcher's name is clicked on, a dialogue
box appears showing some statistics and allowing you to choose to
warm up or sit down the pitcher. A pitcher must have warmed up for
at least two batters (or between half-innings) before he can
enter the game. Pitchers in the process of warming up will show a
'+' mark by their names. When available to come into the game,
they will have an '*' next to their names.
In addition to the above-described options available to both
teams, a team has the following options available to it when it is
in the field:
(1) Change Pitchers -- When a team is in the field, a warmed-up
pitcher can be brought into the game by clicking on that pitcher's
name, holding down the mouse button, and dragging the resulting
box and arrow so that the tip of the arrow is in the current
pitcher's box in the center of the screen. Releasing the button
will produce a dialogue allowing you to choose to bring in that
pitcher or not.
(2) Intentional Walk -- Pressing the 'W' key on the keyboard
will cause an immediate intentional walk to be issued.
(3) Infield In -- Pressing the 'I' key on the keyboard will
cause the infield to be brought in in order to defend against a
possible bunt. Infielders are normally considered to station
themselves at standard double play depth. Having the infield in
increases the likelihood of a hit through the infield. When the
infield is in, two small arrows below the first and third base
boxes will point down. Standard depth is indicated by the arrows
pointing up. This option can be toggled off and on by pressing the
'I' key more than once. It is always removed between batters, so
if it is wanted for more than one batter it must be put on each
NOTE: Clicking on the current pitcher, or a pitcher in the
bullpen, will produce a dialog box showing important information
about that pitcher, including batting average and homerun
percentage against for left and right handed hitters, and walk and
strikeout percentage. For the current pitcher, the number of
batters already faced is shown, while for bullpen pitchers, the
current state of fatigue and the fatigue rating, or number of
batters the pitcher can face before he begins to rapidly lose
effectiveness, are shown. These numbers are very useful in
evaluating when to make pitcher moves.
These options are only available to the team that is
(1) Base Stealing -- If a runner is on base and the next base
is unoccupied, the at-bat team can initiate a steal by clicking
the left mouse button on the base to be stolen. The computer then
evaluates the kind of jump that the baserunner got. If it is fair,
good or excellent, the steal is attempted and the results reported
at the bottom of the screen. If the baserunner gets a weak or poor
jump, the manager is given the option to try to steal anyway, at a
somewhat reduced chance ( 5-20% less ) or to abort the steal and
return to the original base. If the abort option is chosen then
that runner will not be allowed to attempt another steal until the
current at-bat is over.
(2) Pinch Hitting\Pinch Running -- Pinch hitters and pinch
runners are put in by following the lineup change proceedures
described above for the appropriate position in the lineup. Don't
forget to make appropriate changes in positions when changing
players, or your team defense can suffer significantly.
(3) Bunt -- Pressing the 'B' key while on offense will cause
the current batter to attempt a bunt. Occasionally a bunt will
result in an infield single, otherwise, if succesful, it will
advance any runners currently on base, and score a runner from
(4) Hit & Run -- Pressing the 'H' key will start a hit and run.
Any baserunners will start running with the pitch, thus increasing
their chances of advancing and avoiding a double play if the ball
is hit on the ground and increasing the likelihood of extra
advances being made on hits. The negative aspects of the hit & run
are: decreased chance of a home run being hit, loss of possible
advance on long fly ball out, and a forced steal being attempted
if the batter should strike out.
NOTE: Clicking on a hitter, either in the lineup or on the bench,
will bring up a dialog box showing many important statistics about
that player, including batting average and percent of homeruns vs.
left & right handed pitchers, percentage of walks and strikeouts,
calculated speed, and fielding. The fielding ratings, shown in the
lower part of the box, are displayed as an 8 digit number. Each
digit coresponds to a fielding position, going catcher, first,
second, third, short, left, center, and right field. Ratings range
from 1 to 8, with 1 being the best, with 4 being the lowest rating
for someone who actually played the position. These ratings came
from the Strat-O-Matic(TM) baseball board game cards ( although
nothing would stop you from making up your own ratings if you
wanted to, using the input program. )
A TYPICAL SEQUENCE OF PLAY
In a typical game, one manager or the other might make one or
two lineup changes before the game begins. Then, once the first
batter has batted, relatively few strategic moves will be made in
the first four or five innings -- an occasional steal, hit & run, or
perhaps an intentional walk. Mostly the managers will just
alternate pressing the space bar. In the later stages of the game,
strategy will heat up. Both teams must begin warming up pitchers,
and perhaps making changes. If the game is close, defensive
managers will bring in the infield during bunting situations;
offensive managers will look to advance runners either by bunting,
stealing, or perhaps hit & run. Pinch hitters will be used to
exploit lefty-righty advantages. A team that is ahead late in a
game may make defensive substitutions in key positions.
Eventually the game will end. At that point you will be given
a choice of saving or not saving the statistics from this game. If
you choose save, the statistics will be accumulated with any
others that have resulted from games you have played with either
of the teams involved. Then you will be shown a box score of the
game. When you are through looking at the box score, pressing a
key or the left mouse button will give you a dialog box offering
your the option of quitting, playing another game with the same
two teams, or playing another game with different teams.
The following menu items are available:
DESK-About BB-GAME - An id box with credits.
Accesories - Should all work without difficulty.
FILE- Save / Load - Not currently supported.
Quit -Terminates the game after the next batter ( rainout? )
OPTIONS- Adjust Speed- Controls maximum amount of ( random ) delay
before results of play are reported.
Autoplay Options- Allows you to turn autoplay off and on,
specify number of games to be played, and set other
autoplay options. This is not yet fully implemented, but
it does have enough intelligence to select starting and
relief pitchers in a reasonable fashion, to steal bases
relatively appropriately, and to allow you to play large
numbers of games between two teams very quickly. When in
effect, autoplay can be terminated by holding down the
left mouse button for a second or two.
Roster Home\Visitor- Shows a complete roster for the team
chosen. Allows you to view stats for any player. If
still in the pregame phase, allows you to activate or
deactivate players ( useful if you want to stick to a 25
or 24 man roster ).
Save Linescore- When checked, the program will save a
linescore of the game at the end along with some other
game data in a file called 'GAMES.DAT'. If this file
doesn't exist on your disk you will be given the option
to create it ( note: requires about 32K of disk space ).
I do not yet have any programs ready for release that
make use of this data but I expect to in the future.
Auto Deactivate- When checked, will automatically
deactivate players if their at-bats or batters faced
( for pitchers ) during games played on the computer
exceeds the number they had in reality, as entered with
the input program. Useful for maintaining balance and
comparing team depth when playing full seasons ( i.e.
prevents part-time players from having too many at-bats,
and so on. )
ANOMALIES, BUGS, ETC.
1. Currently, an RBI is always assigned to the current batter,
even he doesn't deserve it ( i.e. error, steal of home, etc. ). I
will fix this is in a later version.
2. Errors are not assigned very realistically at this point-
outfielders get too many and infielders not enought. Once again, I
expect to track this down eventually.
3. Baserunners currently always advance as a unit- i.e. they all
either advance either one base, two bases, or three. I will code
this better in the future.
4. Currently, both teams chosen MUST come from the same disk drive
and directory- the program keeps track of only a single path for
both teams. The program will LOAD teams from different drives or
directories, and a full game can be played, but attempts to SAVE a
game with this situation in effect will fail, possibly with
This game is just the latest in a long line of baseball
simulators I have written in the course of this decade. The
originals were written in NorthStar Basic for the Z80, for those
who remember those ancient times. We have used the programs for a
regularly functioning computer baseball league in the school that
I work in. In the spring of each year, we run a full 162 game
schedule within our 10 team league, based on statistics from the
previous Major League year. The league started in 1980, and we are
currently in our ninth season. Having moved up the ST in late
1985, I began the process of teaching myself C in '86, and had a
rough but working version of this program in place for the 1987
season. This year, being ever so much wiser about C, GEM and the
ST, I made major revisions and improvements in the programs,
resulting in this current version. I still feel that I have only
begun to tap the power of the ST for this kind of software, and I
hope to incorporate many improvements and enhancements in this
program in the near future.