jsPerlBot - John Hazen	john@hazen.net

Written entirely in Perl.

runme should correctly invoke the Perl interpreter.  If not, please 
fix the path to perl in the first line.  The runme.pl file in the 
source directory is the same as the executable.

This program uses some of the advantages of Perl well.  There is
extensive use of hashes, to track homebases, robots, and packages.

To save CPU time (a tradeoff with memory use), a distance map is 
created for every home base as initialization.  This serves to 
handle most pathing issues, except where a path is blocked by
an opponent.  One feature of the maps is that spaces next to water
are more costly to traverse.  This leads the robot to avoid
getting close to the water, unless necessary.  This should prevent
most drowning deaths.

The algorithm used to pick packages to take from a home base is to
maximize the points (weight) per unit distance.  The distance is 
calculated from the current home tile, to the destination of the
package, and from there to the nearest home base from that point.
This should maximize the points gained per unit money(or time).
Home bases are marked as regular tiles once they are devoid of
packages, so the routing only send the 'bot to home bases that
have known packages, or are still unexplored.

Dealing with opponents is challenging.  If another robot is near,
the algorithm bumps up the bid to a minimum value (currently set 
to 4), and every time it detects failure to do what it intended,
it increases the bid.  To prevent deadlock and resource wastage,
an alternate strategy (sidestepping the offender) is used when 
the bid gets high, and if that fails, the robot will shutdown
temporarily, to let the opponent get out of the way.
