The Rugbe Package Delivery Bot is a java application that uses a lightly 
optimized version of the A* pathfinding algorithm to navigate the world 
map. The Rugbe bot finds the closest base and picks up the packages the 
shortest distance from that base. As it moves, the Rugbe Bot 
opportunistically picks up packages it finds. When the Rugbe bot has 
delivered all of its packages, it again looks for the closest base.

I tried several approaches to avoiding other bots based on special 
condition handling. I finally just decided to take other robots into 
account when constructing a path, if Rugbe Bot is close to other bots. If 
the Rugbe Bot is close to another bot, it generates a path against a board 
"colored" with bots and their weighted buffer zones. I don't think is 
optimal, but I ran out of time. Since the Rugbe Bot strives to stay away 
from other bots, with no exceptional condition handling, it always bids 1.

There is a ui version I used for debugging. To see the UI, run runme_ui.


The architecture allows for pluggable brain functionality, although I had 
time to write only a single non-trivial brain. I chose to make as much use 
of existing Java collections and data structures as was possible. Using 
custom collections could speed up many of the path finding operations.
