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. 

.