PLAYBALL! Outline

1) About PLAYBALL!:

Welcome to PLAYBALL!. PLAYBALL! is a program that consists of 8 modules that together allow you to input all the data needed to schedule most sports.

Each of the 8 modules is described on the following pages. But, before we look at each of these, I think it's important that you have a basic understanding of what PLAYBALL! does, and how it does it.

Each of the first five modules combine to create one of two databases. One database consists of all the Team-to-team matches and designates which of the teams is Home and what city it resides in.

The second database (Location/time) is comprised of all the possible fields, game-times and dates available.

These two databases are merged together by the EXECUTE module based on numerous criteria you specify for each age-group or league. Some of these criteria are:

       - Games per week
       - Days rest between games
       - Minimum days between head-to-head matches
       - Multiple games per day (yes/no)
       - Delayed start dates for different time slots
       - Whether teams in that league are allowed to
         play on that field
       - Whether teams in that league are allowed to
         play that game number

The MISC. module allows you to make manual adjustments and produce reports. The QUIT module does preciously what its' name implies.

In summary, each of the 5 modules (CALENDAR, TOWNS, FIELDS, LEAGUES & TEAMS) which proceed the EXECUTE module, build on one another and work together to construct either the Team-to-team database or the Location/time database. Below I have listed each module and its' particular role in producing a final schedule.

Module       Database #1                 Database #2
  # Teams-to-team Database       Location/time Database

  1                                   CALENDAR

  2        TOWNS                        TOWNS

  3                                    FIELDS
                                          |
  4       LEAGUES                         |
                                          |
  5        TEAMS                          |
             |                            |
             +-------------+--------------+
                           |
  6                     EXECUTE (joins the two tables)

  7                      MISC. (manual changes & reports)

  8                      QUIT (exit to DOS)

2 Step-by-step Instructions:

2.1 - Begin Program:

2.1.1 - Type PB To begin the program, make the directory you installed PLAYBALL! in your default directory, type PB and press ENTER.

2.1.2 - Introduction Screen

2.1.3 - Scenario Selection The next menu screen will allow you to choose which of the 10 scenarios you wish to either create or modify. You can also modify the DEMO scenario giving you a total of 11 scenarios you may have stored at one time. Each of these scenarios is completely independent. After selecting Scenarios #1 - #10, you will be prompted to give a description for that scenario. If you choose "Clear Scenario" you will prompted to provide a scenario number. If you leave the value 0 then no scenarios will be cleared and you will be returned to the scenario selection menu.

2.1.4 - Main Menu The next screen is the Main Menu screen. Each choice (module) is in some way dependent upon the choices (modules) to the left. Begin with the CALENDAR choice and proceed to the right.


   CALENDAR   TOWNS   FIELDS   LEAGUES   TEAMS   EXECUTE   MISC.  QUIT

In most cases, all the modules to the left of the EXECUTE module (CALENDAR, TOWNS, FIELDS, LEAGUES and TEAMS) must be executed prior to running the EXECUTE module. A few short-cuts are allowed if the entries for the CALENDAR, TOWNS or FIELDS haven't changed. If you have executed the EXECUTE module, and decide to change one or more parameters, I recommend that you exit and re-enter. Results can be inconsistent if you try multiple executions without exiting and re-entering a single scenario. The MISC. module does allow you to skip straight to it from the Scenario selection screen. This allows you to solve an initial schedule solution and come and go while making manual adjustments.

2.2 - CALENDAR Module:

The CALENDAR module is where all data necessary to build the Location/ Time database is entered.

2.2.1 - Dates Entry Screen The CALENDAR module is designed to allow you to enter all the data needed to build a season calendar. Turning particular fields off for different nights will be addressed later in the FIELDS and LEAGUES screens.

-"Date Season Starts"- The first possible date play can begin.
-"Date Season Ends"- The last possible date for play.
-"Delayed Iteration Date"- PLAYBALL! makes 4 passes through the database when trying to solve a schedule. The first pass uses all the date and game criteria you specify while the second, third and fourth passes vary certain inputs, the base adjustments are as follows:
1st- use base inputs,
2nd- increases games per week by one,
3rd- same as 2nd, but also reduces the days between games by one,
4th- same as 2nd & 3rd, but includes Secondary days-of-the-week
    (see 2.3.1). By specifying an "Iteration Date" a few weeks
    after the "Season Start Date" you can keep the first few weeks
    of the season free from extra games that were scheduled by the 2nd,
    3rd or 4th pass.

The latest version of PLAYBALL! allows you to choose between 6 different
input adjustment orders (See 2.7.3).

- "Date Spans To Exclude"- Up to four spans of dates can
be entered to close all fields. This can be used to account for holidays
or mid season tournaments.

- "Individual Dates To Exclude"- Up to sixteen individual
dates can be entered to close all fields.

- "Individual Days Of The Week To Exclude"- This allows you
to close all fields for a given day of the week.

After entering all of the CALENDAR data you will be returned to the Main Menu.

2.3 - TOWNS Module:

The TOWNS module is where you input the city names and certain city-specific date information into the program.

2.3.1 - Towns Entry Screen Up to 15 cities along with the days of the week they are allowed to play as well as alternate season start dates and up to eight exclude dates may be entered in this and following screens.

The Day-of-the-week value (P, S or N) allows you to designate a day-of-the-week as either Primary (P), Secondary (S) or Excluded (N). Choosing the Secondary (S) option allows the program to consider these days after three scheduling iterations varying other inputs (games per week (2nd iteration), days between games (3rd iteration)) have failed to find a spot for a particular matchup.

If any city has at least two exclude dates, the program will prompt as to whether you wish to add up to six more.

The program will dimension all future screens in accordance with the number of cities entered here. After supplying all desired inputs, as with all screens, press the "Page Up" or "Page Dn" key to return to the Main Menu.

2.4 - FIELDS Module:

The FIELDS module works in conjunction with the city data entered in the TOWNS module. For each city entered in the previous module a screen will appear which prompts you to supply up to 15 field names and the number of games each field is allowed to have per day of the week.

2.4.1 - Fields Entry Screen Selecting the FIELDS module will display an entry screen once for each of the cities entered previously. Up to ten fields may be entered for each city. The program will number them, and dimension future screens to match these inputs.

2.5 - LEAGUES Module:

The LEAGUE module is PLAYBALL!'s most powerful module. It allows you to enter a variety of selection criteria that give you unsurpassed flexibility in scheduling league play. This module consists of the following four screen groups:

   #1) Enter league names, 1 screen

   #2) Enter date restrictions for each game slot (times will be assigned
       later), 1 screen per league entered in #1)

   #3) Enter play criteria (games/week, rest between games, etc.), 1 screen
       per league entered in #1)

   #4) Enter field selection, 1 screen per league entered in #1)

2.5.1 - SCREEN GROUP #1: Leagues Entry Screen The first screen is where you enter the leagues. Up to twenty leagues may be entered in this screen. The program will dimension all future screen groups in accordance with the number of leagues entered here.

2.5.2 - SCREEN GROUP #2: League Date Restrictions The second screen group is where you enter dates to restrict play for certain leagues during certain game-times. In the example below, only game-times for games one and two during week nights will except an entry. Remember, in the CALENDAR(3.2.1) module only weekdays were included in the season calendar and in the FIELDS(3.4.1) module a maximum of two games per day were allowed. PLAYBALL! will limit input in these screens in accordance with these guidelines.

Note that the second game on Weekdays(Mon - Thr) has a different date than the first game or either game on Friday. This illustrates how you can restrict play for certain leagues from selected time periods. The date represents the first date that play can begin for this league in this time slot. To illustrate this point, if you wish to only allow small children to play early games on school nights, but don't mind them playing the second game on Friday nights or during the summer, then enter the date that school lets out next to #2 for Weekday (Mon-Thr). If you wish to exclude a league from ever playing during a certain time period, just enter a date after the season end-date.

2.5.3 - SCREEN GROUP #3: League Play Guidelines The third screen group is where you enter league play guidelines: Games/week, Days between games, Minimum days between head-to-head matches, Multiple games per day (Yes/No), Inter-city games and Intra-city games. The Inter-city/Intra-city inputs are for the purpose of establishing an initial team-to-team match solution.

2.5.4 - SCREEN GROUP #4: League Day-of-the-week (DOW) Selection The third screen group is where you restrict certain leagues from playing on a given day-of-the-week. Actually you have three choices:

"P"= Primary - PLAYBALL! will always consider this DOW for
      this league

"S"= Secondary- PLAYBALL! will always consider this DOW for
      this league on the 4th iteration (see 2.2.1)

"N"= NO - PLAYBALL! will never consider this DOW for this
      league

2.5.5 - SCREEN GROUP #4: League Field Restrictions The last screen group is where you restrict certain leagues from playing on particular fields or gyms. This can be handy when the infield measurements or basket height varies from league to league. To restrict play for selected leagues (small children) to certain fields can help greatly to reduce between game setup time.

2.6 - TEAMS Module:

The TEAMS module is where you enter each team by city and league. A separate screen will appear for each city and league. To achieve a proper schedule solution it is of paramount importance that you enter the teams in the screen that corresponds to the correct city and league. I suggest that you only enter team abbreviations at this time. You can assign a team name in the MISC. module.

2.6.1 - Team Entry Screen The following screen allows you to enter 3-digit team abbreviations. A separate screen will appear for each city and league (3 cities & 6 leagues would present 18 league/city team entry screens).

2.6.2 - Solution Decision Screen After all the teams have been entered, PLAYBALL! will prompt you with a screen askling whether you wish to allow it to solve the team-to-team match matrix using the Inter-city/Intra-city values you entered earlier, use the values you have saved from previous work or use default values provided by the program. If you have added or deleted teams I suggest you begin from scratch and allow it to solve an initial solution which you can then modify in the next set of screens. You might also do a "Print Screen" of each matrix for your files.

2.6.3 - Team-to-team Matrix The team-to-team match matrix is where you decide who plays who and how many times they play one another. The teams are listed using the abbreviations you entered in TEAMS(3.6.1). Using these abbreviations frees the scheduler from being accused of any bias when determining the matches.

1 CH1
2 CH2   2                                 League: Girls 6
3 CH3   2  2
4 DS1   1  1  1                    Press "Page DN" for Totals
5 DS2   1  1  1  2
6 DV1   1  1  1  1  2                         Next: N
7 DV2   1  1  1  1  1  2
8 DV3   1  1  1  1  1  1  2
9 M1    1  1  1  2  1  1  1  2

       10 10 10 10 10 10 10 10 10
Team #  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

By pressing the "Page Dn" or "Page Up" key, the cursor will move to the Next: box and a total games line will appear at the bottom of the screen. If you are satisfied with the matches and the number of games each team is playing then type a Y in the Next: box and this same screen will appear for the next league. If you answer Yes and the program moves to the next league but you are not satisfied with the matrix, you must continue until you reach the Main Menu and reenter the TEAMS module from the Main Menu.

After making changes to the matrix, pressing either the PageUp or PageDn key will update the game totals row at the bottom. Either of these two keys will move the cursor between the data entry matrix or the "NEXT?" box. The default answer for "NEXT?" is "N" for No. If you are satisfied with the game match-ups listed in the matrix you simply move the cursor into the "NEXT?" box and type in a "Y" for Yes. The program will produce a matrix for the next league. You cannot back up to a previous screen. If you wish to change the data for a league that you have already completed, you must return to the main menu screen and select the TEAMS module again.

Choosing the DEFAULT selection will provide you with preprogrammed matchups based on the number of games each team will play. The program will prompt you for all the needed information. Be aware that leagues which are composed of an odd number of teams may need some manual input to balance the matrix. An example of this is presented in the DEMO scenario for the third league, Girls 10. By increasing the number of games between those teams that are not currently playing the desired number of games, the matrix will balance.

2.6.4 - Save Team-to-team Matrix Screen Once all the leagues have been entered you will be prompted by the following message as to whether you wish to save these matches. Because this is such a bothersome and tedious task I suggest that you always save your work.

2.6.5 - Random Seed Value Screen Before the program creates the team-to-team match database it will prompt you to supply a seed value for the random number generator. Any value from 1 to 999 may be entered. These values are used to assign random numbers to the team matchups so that once the database is sorted by these random numbers each the matchups are solved randomly rather than by team. Without sorting, the first team would have its' whole schedule determined before the last team had more than just a couple of games set. This would always give the first team a much cleaner schedule that the last team because the last team would have to fit all its' games in and around all the other teams games which were already scheduled. By sorting the data PLAYBALL! avoids this pitfall and by giving you 999 seed values to choose from, if 1 doesn't work try 2, if that doesn't solve a schedule to your satisfaction try 3 and so on. Each value will yield a different solution. Choosing an identical seed value, given that no other input files were changed, will yield identical results.

If time permits, you can set PLAYBALL! into automatic mode and it will solve a schedule for each of these 999 seed values. More will be discussed about this feature later in the EXECUTE and MISC. modules.

2.7 - EXECUTE Module:

The EXECUTE module brings all this data together to generate a schedule.

2.7.1 - Proceed Yes/No Screen If a previous schedule exists you will be prompted with the a screen asking whether you wish to continue or not.

2.7.2 - Use Existing/Create New Screen If you choose to continue then the a screen will allow you to either use the existing schedule or overwrite it. For example, if your city uses the same fields for recreational and competitive leagues and you have to schedule a competitive league before you know exactly how many recreational teams are playing. You would enter all the data for the competitive leagues and create a final schedule. This schedule would have a large number of unused time-slots. When you schedule the recreational league you would choose to use the existing schedule and PLAYBALL! will fill in the empty time-slots without disturbing the competitive schedule.

2.7.3 - Adjustments for 2nd, 3rd and 4th Iterations If one or more games are not scheduled on the first pass through the Team-to-Team database, the program will make adjustments to several inputs and will make three additional attempts to solvethe schedule. As mentioned in Section 2.2.1 the basic order of adjustments is:

     2nd try - Increase the number of games per week

     3rd try - Reduce the number of days between games

     4th try - Include Secondary days of the week
               along with Primary days of the week

Six additional configurations have been added to the latest version of PLAYBALL!. This screen allows you to choose the order in which each of these adjustments is made.

        Scenario #1                        Scenario #2

  2nd-Increase Games/Week             2nd-Increase Games/Week

  3rd-Reduce Days Between Gms         3rd-Primary & Secondary Days

  4th-Primary & Secondary Days        4th-Reduce Days Between Gms

        Scenario #3                        Scenario #4

  2nd-Reduce Days Between Gms         2nd-Reduce Days Between Gms

  3rd-Increase Games/Week             3rd-Primary & Secondary Days

  4th-Primary & Secondary Days        4th-Increase Games/Week

        Scenario #5                        Scenario #6

  2nd-Primary & Secondary Days        2nd-Primary & Secondary Days

  3rd-Increase Games/Week             3rd-Reduce Days Between Gms

  4th-Reduce Days Between Gms         4th-Increase Games/Week

          Choose an Iteration Adjustment Scenario (1-6) 1

2.7.4 - Exclude Certain Time Slots Screen After the database containing all date, field and time slots has been created, you can choose to enter the database and exclude any particular days or time slots for a any of the fields. Placing an "X" in the first column of the database will keep the program from assigning a matchup to this time slot.

2.7.5 - Sort Routine Screen Before the program creates the calendar database it will prompt you to supply a sort routine that will order the data. The first sort routine will try to fill game slots before it fills up a field, while the second sort routine will try to fill one field before it moves to another.

2.7.6 - Proceed/Stop/Return Screen At this point the program will give you the choice of whether you wish to continue executing the schedule or exiting now with an empty calendar. See Example Scenario #4 for how this feature can be used. Selecting the third item "Test all Random Seed Values" will solve a schedule for each of the 999 possible seed values that may be entered in the TEAMS module. A database will be created with statistics drawn from each schedule. These can be use to determine which seed value yields the best schedule. As you might suspect, this can take a while. You can bail out of this test at any time by canceling the program. You cancel the program by typing C while holding the ALT key. The database will contain statistics for all the seed values it had an opportunity to complete. A report in the MISC. module presents these results.

2.7.7 - Execution Screen PLAYBALL! will now begin to create the initial schedule.

              LEAGUE: 6 & Under
              HOME TEAM: 1 CH1
Start Time    VISITING TEAM: 4 DS1
 11:11:36     HOME CITY: Cedar Hill
 11:11:37     FIELDS: Cedar Hill #1
              DATE: 04/18/94 MON
              GAME: 2
              MATCH: 3 OF 636
              DAYS BETWEEN GAMES: 1
              GAMES PER WEEK: 1
              PRIMARY DAYS OF THE WEEK ONLY

2.8 - MISC. Module:

The MISC. module is just what its' name implies. It's a catch-all module. It allows you to "flesh-out" the database; produce, view and print reports; and make manual adjustments to the schedule.

2.8.1 - Miscellaneous Activity Screen A screen allowing you to create reports, print reports, view reports, add or modify schedule or browse the database will appear.

2.8.2 - Create Reports Screen The "Create Reports" selection will produce a screen which allows you create any of a number of reports.

2.8.3 - View Reports Screen The "View Reports" selection allows you to preview a report prior to printing or during the final "tweaking" stage of schedule preparation. Viewing the team schedules by league allows you to spot situations you might want to adjust manually in the "Switch Data Around" or "Browse" selections. The program editor cannot edit files larger than 60K.

2.8.4 - Print Reports Screen The "Print Reports" selection will produce the following screen which allows you print any or all reports that have been created.

2.8.5 - Add or Modify Screen The "Add or Modify" choice will allow you to modify the database by adding team names, assigning times to game numbers, adding dates to the database or clearing all games for a particular league.

2.8.6 - Switch Data Around Screen The "Switch Data Around" selection will allow you to modify the database by switching home & visitors or switching the date, time and field for any match with another match. For example, this allows you to group games for a league together, thus allowing coaches easier opportunities to review their competition.

2.8.7 - Switch Home & Visitors Screen The "Switch Home & Visitor" selection will allow you to modify the database by switching home & visitors designation.

2.8.8 - Switch 2 Games Screen In the "Switch 2 Games" screen you enter the first match-ups Date, Field and Game #. After confirming that the return vales for home and visitor are correct, you accept these choices by placing a Y in the Confirm Y/N box. Enter the second match-ups Date, Field and Game # and once you are satisfied that the return values are correct simply place a Y in the Confirm box and the switch will be made.

2.8.9 - Non-assigned Matches Screen In the "Assign Field, Game-time & Date to Non-assigned Matches" screen you enter the record number of the unassigned match. This record number comes from the "Unassigned Match Report" MISC.(3.8.2). If the values returned are correct then answer the Confirm Y/N with a Y. Next, place the record number for the open Date, Field and Game # and confirm again with a Y. The assignment will then be made and you will be returned to the main MISC. screen.

--- Example Scenario 1 ---


Single City Basketball League
6 Boy's age-groupings/6 Girl's age-groupings

Details:
- Saturdays only (8)
- 2/5/94 thru 3/26/94 (8 Saturdays)
- 5 gyms/6 games a day
- 8 game season
- Locations and inter-league particulars
- Boys #4, #5 and #6 have no inter-age group play.
- Boys #2 & Girls #3 play one another to round out their seasons.
- If the girls are the home team, play is at C/Hill ES. If the boys
  are home, then play is at Moates ES.
- Girls #5 are allowed to play Girls #4 and Girls #6 to round out
  their season. Girls #4 and Girls #6 never play one another. They
  all share the same home sites. The team match-matrix can be used
  to accomplish these specific match-ups.
- The Girls #1 and Girls #2 play one another but share the same home
  site.



--- Example Scenario 2 ---


Multiple city tournament of select baseball teams

Details:
- Saturday/Sunday games for 3 weekends
- Each team plays 2 games a day/4 games a weekend (no more, no less)
- 3 fields are available for the first two weekends, only two fields
  are available for the 3rd weekend
- Minimize back-to-back games
- Each team plays every other team at least once, but must play three
  teams twice resulting in a total of 12 games per team

These constraints do not allow you to execute
the program in its' normal mode. To do so will have some teams playing
three times on some days and only once on others. Like before, I had to
use the tools available to achieve a result for which the program was not
originally designed.



--- Example Scenario 3 ---


Single city boys baseball

Details:
- 5 leagues share 3 fields (see table below)
- Game start times and length of game will depend on which league is
  playing that night
- Play 6 days a week (Mon-Sat)
- Unless necessary, only one league plays on split fields on a given
  night

These constraints are easily handled by PLAYBALL!.



--- Example Scenario 4 ---


Recreational boys baseball league sharing fields with a competitive
league already playing but not scheduled using PLAYBALL!

Details:
- 5 leagues, each with a different field
- 3 of the leagues must share a field with like-age group competitive
  leagues already in play. These competitive leagues are not limited
  to just certain times on certain days (the competitive team's
  schedule has numerous times and dates booked, but the bookings are
  not systematic, they vary both in time and day of the week)
- Play 5 days a week (Tue-Sat, Monday left open for rain-outs)

  Agian, this scenario posses no problems.


Other Links

Return to Main Screen

Bradford Software Systems

544 Ten Mile Dr.

DeSoto, TX 75115

(972) 230-4931

If you have comments or suggestions, email me at stanbrad@flash.net