Getting back to a blank slate.
Initial Maven creation.
Experimental commit
Additional initial setup.
Progress commit.
Progress.  NetClient is starting to take shape - I've just worked out
how to join a game.  Now I need to write the HTTP and JSON code more
cleanly, and tackle the remaining NetClient methods.

Then, finally, I can maybe get on to writing the AI and the evaluation
engine.
Incremental checkin.  NetClient is just about done.  I've also started a
top-level python script for running one client.
Saving progress.  I have AI_basic_shooter almost working.  I seem to
have a bug where my random generator for ship locations is allowing two
ships to occupy the same space.
I *think* my code is working right for AI_random_shooter, but it seems
like the server is failing to notify us when there game has been won or
lost.
Basic version works!
I now have a script for running an arbitrary number of games using a
given pair of AI clients.
Various improvements.  Now run-tournament.sh prints the # of wins and
losses for player 1.  Probably the next step is to develop a better AI
engine.
Added an application that will report the confidence estimate of a
win/loss ratio.  We can use this to decide when we've had enough runs of
a given pair of players to have a good estimate of the win/loss ratio
they'd have over an infinite number of games.
I've got a decent script now for performing game runs until a given
confidence level and interval are obtained.  The bad news is that it
took about 380 games to determine with 95% certainty a confidence
interval of less than 10% around the estimated win ratio.  And even then
the estimated win ratio was 47.92%, when the actual value is probably
50%.  There were 182 wins and 198 losses for player 1.  Both were using
the random-shooter AI.
Incremental progress.  Code probably doesn't even work, but I want my
changes so far to be safe.
Massive restructuring of the code.   It's now way easier to write an AI
engine.
Various minor improvements.
I've added the AIRandomShooterWithFloodKill1 engine, and I must say it's
performing swimmingly.
Cleaned up a few scripts, and fixed a possible bug in the way random
ship layouts were being generated due to ShipLocation not overriding
equals().
Added a new AI engine: AISearch42WithFloodKill1.  It looks very
promising - I think it's crusing AIRandomShooterWithFloodKill1.  This is
probably the farthest I'm going to take AI development.  After this I
have cleanup, and then perhaps performance plot scripting.