Classic Computer Magazine Archive Article from Atari Classics magazine

The Garret
   The Garret


League Organiser

Ed Hall, AC Staff Columnist

Bloodthirsty Sport
    You probably know that Canada has socialized healthcare, but did you know that Canada also has socialized hockey? It's true. The government provides free skates to everyone over the age of three, and all citizens are required by law to play hockey. [Yeah, uh-huh. And Jack Tramiel hands out free computers on the street every Friday at 2PM. -Editor] Each town has at least one rink and a bewildering number of hockey leagues: Atom, Mite, Peewee, Bantam, Midget, Juvenile, Junior (Tier 1 and Tier 2), Senior, Recreation, Commercial, and Oldtimer, to name just a few.
    Our love for this bloodthirsty sport is closely linked to another national trait: a fierce, unbridled desire to be on time. Americans are brash, French are passionate, and Canadians are punctual. It all comes from our obsession with hockey: if you arrive late at the rink, you end up with less ice time. So why am I telling you all this? It's simple; these two Canadian characteristics are responsible for bringing you a new and invaluable piece of software. Here's how it happened.

Beware The Blasters!
    The team I play for is called the Ol' Blasters. (I live in a mining town, see.) One of our best players is a hardrock miner who works seven days a week, spends more time underground than above, and has the hardest shot on the team. Once, during a practice, he wound up and let a slapshot go from the point. The puck hit the goalpost and shattered into pieces!
    Later, in the dressing room (after we had presented him with a bill for the puck), he uttered these fateful words: "Hey, when's the next game?"
    "Next Friday," says Ernie, who's our league rep. "Same time."
    "Not another 10:30 game! How come we get so many late games? Who made up this schedule, anyway?"
    "It was Sid," replied Ernie, naming a guy who played for another team, the Rusty Blades.
    "Oh, so that's why they get all the early games!"
    Ernie shrugged. "Well, the league needed a schedule and no one else wanted to do it..."

That Got Me Thinking...
    First of all, how was the schedule made up? It wouldn't be a big job to do by hand, since there are only seven teams in our league, and eight weekly time slots. But the more I thought about it, the more I realized that it was a task eminently suited for a computer. I thought about the incredible variety of league sports played in every city across the continent, each one needing a schedule for regular season games, playoffs, and tournaments. Yet in each case only three sets of data were needed: number of teams, number of available time slots, and length of the season.
    Doesn't sound too hard, does it? So how come I'd never come across such a program? The Atari Classic computer has been around for over a decade, and has built up an impressive library of software. Seems hard to believe no one had ever tackled such a useful project. I thought about it for a while, wondering if there were a database or a spreadsheet which could be recruited for the job. I even made a few rough notes towards an original program. Then I came to my senses and and sat down to write a letter to Les Ellingham, the editor and publisher of New Atari User. Les printed it in the Mailbag section of issue 55 (April/May 1992) under the heading, "Programming Challenge." In issue 63 (August/September 1993), he made an exciting announcement: the challenge had been accepted.
    League Organiser by Adrian Hyland is an assembly-language program which comes on a double-sided disk. The instructions on side 2 are detailed, and accessed by a user-friendly menu. I immediately printed out a copy, skimmed through it, and then spent several hours with the program itself. I found it simple to use and capable of handling nearly all my scheduling needs. To my mind, League Organiser is an application which ranks right up there with spreadsheets and databases in terms of usefulness, because it can be employed for many other kinds of scheduling tasks, not just sporting events.
    League Organiser creates round robin schedules (where each team plays every other team an equal number of times). It can accomodate a maximum of 31 teams and over 1500 time slots per year--more than enough for the average user. The program is divided into three main parts:
    (a) enter teams
    (b) enter dates & times
    (c) display/print schedule
    Each section is fairly compartmentalized; access is through a main menu, and controlled by the program. You can't enter dates and times until you've entered the teams, and once you've begun entering dates and times, teams can't be added or deleted. Nor can you produce a schedule unless you've entered enough time slots so that each team plays every other team at least once. This is an important point, since the number of games is predetermined by the number of teams.

Editing The Season
    Entering times and dates is the heart of the program. You begin by typing in the season's starting date, after which you are presented with a calendar. Move the cursor to the desired date and enter the game's starting time. If your game times aren't periodic, you'll have to enter each date and time individually. This could be a rather lengthy process, but there's just no other way to do it. However, if your game times are the same every week, then you can enter them on a weekly basis. For example, if you play at the same time every Monday, here's what you'd do:
    - mark the starting date (CTRL M)
    - go to the end date
    - tell the program you want to enter a weekly time slot (CTRL W)
    - open the time slot window (CTRL >) - type in the game's starting time
    This procedure automatically enters the starting time for all Monday games within the designated range. If there is another day of the week when you always play at the same time, you will have to go through this procedure again.
    The program charts your progress in game multiples, the exact figure being dependent on the numbFi of teams. For example, if the display shows (a) 2x, (b) +5, and (c) -3, then:
    (a) enough game times have been entered for each team to play each other twice
    (b) five additional game times have been entered
    (c) three more game times must be entered to enable teams to play each other one more time
    If you were to halt at this point, the last five game times (chronologically) would be ignored. If the display showed 0x, not enough times have been entered to produce a schedule.
    Once all the dates and times have been entered, you go to the program's final section, where the completed schedule is displayed. If for any reason you're not satisfied, you can return to the previous module ... but there is little point in doing so unless it's due to an oversight on your part (e.g. an incorrect entry). The program sets up its schedule according to the number of teams, and distributes each team's games evenly over the season. For example, in a league of six teams, each team would play once every three games.
4 vs 5 3 vs 5 5 vs 6 l vs 5 2 vs 5
3 vs 2 4 vs 6 l vs 3 2 vs 6 l vs 4
1 vs 6 1 vs 2 2 vs 4 3 vs 4 3 vs 6
    The order in which the teams play each other is etched in silicon; it won't change from one season to the next, unless the number of teams (or the order in which they were keyed in) is changed.

Post It On The Board
    A scheduling program is useless without the ability to produce a hardcopy. League Organiser handles this task in a straightforward manner, with no need for special printer drivers. There are also a number of useful options, such as adjustable margins and line length. (North American users will have to change the number of lines per page to 66 from the default setting of 71.) One exceedingly nice feature is the ability to print out team (as opposed to league) schedules.
    There are numerous other features which demonstrate the amount of care lavished on the program by Adrian Hyland. There is a modest, but well-executed title screen. Several games can be scheduled at identical times if enough playing locations are available. Schedules can be saved to disk and re-loaded. Error-trapping is extremely thorough.
    League Organiser represents a major contribution to Atari software, and could easily have been a commercial release. Instead, it has been placed in the public domain. You can get your copy from Page6 Publishing, P.O. Box 54, Stafford, England, ST16 1DR. The cost in pounds Sterling is:


handling
postage
total

    ------------------------------------
U.K.
2.50
- - -
2.50
North America
2.50
2.00
4.50

    [Editor's Note. as of November 1993, the exchange rate is about US$1.50 to the British pound. -BP]
    Adrian Hyland deserves a huge THANK YOU from the entire Atari Classic community for creating such a useful program. Fan letters can be sent to him at 29 Woodfield Ave., Gravesend, Kent, England, DA117QQ.

More Challenges
    1. When our team rep, Ernie, went to a league meeting and pointed out the inequities of our schedule, a few changes were made. Two or three teams were shuffled around so the late games were more fairly distributed. This would have been impossible to do with League Organiser. Of course, it may not have been necessary had League Organiser been used in the first place. Still, circumstances may arise where minor adjustments are necessary. The ideal program would allow for:
    (a) a complete recalculation of the entire schedule, using a different sequence of team pairings;
    (b) a partial recalculation, involving only certain teams.
    2. Sometimes schedules are needed for situations where full round-robin play isn't possible. For example, if I were scheduling a weekend tournament for 10 teams, I couldn't use League Organiser, which would require a minimum of 45 games to be played. There just isn't enough time in a weekend for that many games. One solution is to divide the teams into pools for roundrobin play, then have Coe winners meet. If there's a separate playing area for each pool, then each pool can have its own schedule. But if there's only one playing area (which is often the case), a single schedule must be produced without losing track of which pool each team belongs to. Also, since pools often have an odd number of teams, byes are sometimes necessary.
    3. The printouts can be quite lengthy. A test schedule for my hockey league, whose season consists of 189 games played by 7 teams, came to 14 pages. This was twice the length of the actual schedule provided by the league.
    4. Although the program can schedule two or more games at the same time in different locations, there is no way to identify these locations on the printout.
    5. Once you know how the program works, you can produce a schedule in very short order. But even with. the instructions handy, it took me a couple hours to acquire that knowledge. Mostly I learned by trial and error. The steep learning curve is caused by an accumulation of minor difficulties. Most commands require the use of two keys (or keypresses) when one would have sufficed. Both Spacebar and Return have important functions, but I found myself constantly hitting the wrong one.
    Some "difficulties" were due to language, and may not be experienced by users in the U.K. For example, the word "fixture" is used in a way North Americans may not be familiar with. (It means "schedule".) I also had trouble with the phrase "playing area"; sometimes it seemed to mean a location and other times a time slot. "Time slot," by the way, is a bit of a misnomer, since the game only handles starting times; game duration is never a factor in producing a schedule.
    Finally, it took a while to understand how to enter "weekly" game times. The program requires you to define a season for each day of the week, as required. It would be simpler to do it once, then enter all recurring game times.

Text Adventure Update
    I recently obtained some issues of a well-done, but defunct British magazine called Monitor. In it appears Steve Hillen's four-part series on writing text adventures. It begins in issue 12 with a small but complete adventure game system in BASIC. Part 2 (issue 13) discusses data compression, and Part 3 (issue 13) provides a parser with several ML routines. The series concludes in issue 16 with a tutorial on split-screen displays. All-in-all, a useful series.
    Recently, the Tyne & Wear Atari User Group in England began publishing a newsletter. In issue 4 (July/August 1993) there is a BASIC program called Word Weave. It's described as "a specialized word processor for creating branching text stream, be it interactive fiction or a host of practical multiple-path applications." The newsletter contains complete instructions, while the program is found on the accompanying disk. Apparently the program first appeared several years ago in a publication I'd never heard of before, Home Computing Journal.
    Finally, ZORK LIVES! (Well, for IBM-compatibles at least.) In a recent issue of Computer Gaming World, I came across reference to a new game being released under the Infocom label. Return to Zork, however, bears little resemblance to the Zorks of old. It's a graphics-based RPG whose developers used professional actors performing against computer-generated backdrops. My, how the times have changed!