Given a model railroad track as depicted in the Introduction, two concentric ovals with an interconnecting "X" in the middle, and 1 to 4 trains:
- Write a software program that shall control the layout and trains so that each train follows one of four overlapping paths: a large or small oval, a large or small figure-8. Each path shall be followed in a clockwise or counterclockwise direction.
- Trains shall run in the forward direction only.
- A section of the track shall be defined as a starting point, staging yard, for the trains. When a given run is ended, the trains shall be returned, in order, to the staging yard ready to start another run.
- The track shall be divided into sections or blocks for control. Only one train at a time shall be in a given block.
- Each block may have signals to "control" movement between blocks. Signals shall be at the 'exit' of a block and shall reflect absolute block control.
- Signals may reflect the status of the next two blocks in the path of the train.
- Signals may also "control" movement out of and into the staging yard.