In CWOL, units can move up to 40 squares per turn by rail, if
there is a valid rail path between their start point and end
point. Players are not required to specify the path; the software
will determine whether a valid path exists. However, a valid path
cannot be longer than 80 squares.
If a unit has a path of 40 squares or less to its destination, it
will complete its movement. If a unit has a path to its
destination of at least 41 squares but not more than 80, then the
unit will find that path, and will move 40 squares along it, but
will not reach its destination. To get to the destination it will
need to be ordered to move by rail again the following turn
(assuming the path remain valid).
If a unit has no path at all to its destination, or has a path of
more than 80 squares, then it does not have a valid path and will
not move at all.
Example:
CS1IN is in Mobile (E6-Y4) and wishes to rail to Columbus MS
(E4-X4). If the Confederates control all the relevant rail
network, then there is a 30-square path (via Meridian MS at E3-X2)
and CS1IN can rail to Columbus in one turn.
If, however, the Union controls the railroad at E3-X1, so that
CS1IN cannot rail north from Meridian, then it must find another
path. There is a path via Meridian, Jackson MS at D6-X3, and
Corinth MS at E4-V4. That path is 68 squares long. Since it is
less than 80 squares, it is a valid path, but CS1IN can only move
40 squares along it. So it will move to D8-W0, which is 40 squares
from Mobile along that path. If the rest of the path remains under
Confederate control, it can rail again the following turn and
reach Columbus after another 28 squares of rail movement.
If, however, the Union also controls Corinth, then that path is no
longer available either. There is still a path via Meridian,
Jackson MS, Clarksville TN, Hopkinsville KY, Nashville TN,
Columbia TN, and Decatur AL. However, this path is 112 squares
long. Since it is more than 80 squares, it is not a valid path and
CS1IN will not use it. Not having a valid path of 80 squares or
less to its destination, CS1IN will not make any rail move at all,
but remain in Mobile.
The 80-square limit for valid paths has two purposes. First, it
prevents the unit from moving 40 squares in a direction opposite
the one towards its destination, which could happen if the program
allowed very long (say, 200 square) paths. Second, it prevents the
software from being trapped in an infinite loop trying to find a
path.