"Pacifist", from YesLogic [Michael Day - mikeday@yeslogic.com] in Mercury

OVERVIEW
 - A pacifist robot that does its best to deliver every package on the map,
   politely detouring around other robots.

STRATEGY
 - Head towards the current target square (see TARGETS).
 - If you pass over a package and have spare capacity, pick it up.
 - If you pass over the destination of a package you are carrying, drop it.
 - Once you reach the target square, pick a new target.
 - While moving, avoid other robots (see ROBOTS).
 - When there are no reachable targets, just hang around doing nothing.

TARGETS
 - When carrying nothing, the target is the closest package, or if no package
   positions are known, the target is the closest base.
 - When carrying packages, the target is the closest available destination.

ROBOTS
 - Going near other robots is risky and should be avoided. Sort the adjacent
   squares by risk and pick the lowest risk square that takes you closest to
   the current target.
 - However, always avoiding other robots can lead to a deadlock when two
   robots contend for the same square. So from time to time, do something
   risky, inversely proportional to its riskiness. Given sufficient time that
   will break any deadlock with a non-psychotic adversary.

LIMITATIONS
 - It does not detect being pushed, so it can lose packages without realising.
   This leads to it underestimating its current capacity and not picking up
   packages that it could actually hold, as well as trying to deliver packages
   that it is not currently carrying. However if it passes over the dropped
   package or someone else picks it up it will realise and get on with life,
   so the bug does not appear too bad in practice.
 - Slight detours en route to a target to pick up other packages or deliver
   packages that are not directly on the path would increase efficiency in
   some situations. But it's not that smart, so there you go.
 - It always bids 1. Quite conservative, really.
