This robot works (if you can even say it really works) by checking a number of
different type of possible moves for each turn.  This seems to be fast enough
(at least on my Athlon XP 1700+), even with the pathfinding algorithm that
could use some optimization.

The things the robot looks to do are:
1) drop packages it's holding onto it's current space, if that is the package's
   target
2) pick up new packages if there are any
3) move to a package destination
4) move to the locatio of a package we know about
5) move to a home base to check if it still has any packages

Things the program does not do as of writing, but may before the entry is
submitted include:
1) intelligently fight other robots for packages
2) try to push robots into the water/each other
3) chase after robots that have packages

It is interesting to note that this was my first program to do any networking.
All of the networking code seems to be working at this point, except that it
doesn't seem to detect when it's disconnected from the server.

When the server was tweaked to report to the program why it died, it caused my
program to start segfaulting after it's death.  I haven't bothered to fix it
because I'm really tired, and it seems kinda pointless.  Besides, now it at
least will quit by itself when the game ends or it dies, albeit only because it
crashes on the death/game over message.

Some of the inspiration for methods used are my friend Kevin, who showed me a
blindingly obvious way to speed up the pathfinding (which could still be sped
up more by optimizing the search for the best "open" item).  It could have been
a memory problem (in the worst imaginable situation, which could never happen,
it could use up to 250 GB of RAM :-P).

My Dad reviewed the data structured I was planning on using, and made some very
helpful suggestions reguarding using liked-lists verse arrays.  He also wrote
some code to handle the server's responses, but we both ended up writing that,
in a horrible mess of code duplication.

The information I found on the A* pathfinding algorithm used came from the
pseudocode at http://www.geocities.com/jheyesjones/pseudocode.html and the
description of the algorithm at http://www.geocities.com/jheyesjones/astar.html

In my handling of information coming back from the server, i setup an event
system, where it would set a flag if a certain type of event happened.  I never
ended up using that flag, as it seemed fast enough just testing all the moves
it wants to try anyways.  The event flag is still there, and is still set, but
it doesn't really server any purpose.

While I don't expect this to be the best robot out there, I thought we did a
pretty good job given only 72 hours, and no Mountain Dew until the last night.

