Our entry is written in Ocaml and organized into several modules:

* main.ml handles communication with the server, maintains internal
data structures (representing the board as a pair of a matrix and a
list of robots), and calls the runStep function (in strategy.ml) to do
the real work

* strategy.ml handles the game strategy including the pathfinding and
goal finding algorithms. It also handles fighting when other robots
are around.

* grid.ml and commands.ml define the representation for the game state
and for commands

* helpers.ml contains functions used by strategy.ml to access these
data structures

* parser.mly parses the server responses into our data structures

* util.ml contains random useful list functions
