My robot, named "TestClient", is really an excuse to turn in a fancy
graphical game server. The `runme' script does what it's supposed to
do. The `runserver' script takes arguments similar to "Simulator" and
starts a server with a graphical display, including Pause and Rewind
buttons.

The `runme' script assumes that `mzscheme' is in the current PATH, and
the `runserver' script assumes that `mred' is in the current PATH.

The main source entry points are

   source/icfp-robot-gui/{server,auto}.ss


There's also a GUI client, so that a person can pretend to be a robot,
though it's rough at the moment. (For example, it's not always
possible to tell which of a robot's held packages go to a particular
destination.) The `runmanual' script runs the GUI client, using `mred'
and given the same command-line arguments as `runme'.


If you move the source/icfp-robot-gui directory into a PLT
installation at plt/collects/icfp-robot-gui, then and re-run "Setup
PLT" (which is plt/bin/setup-plt in Unix), you'll get three
better-than-script executables:

 - "ICFP Robot Server" (the server; plt/bin/icfp-robot-server in Unix)
 - "Simple ICFP Robot" (the runme robot)
 - "ICFP Robot Client" (the GUI client)


Notes on non-obvious parts of the GUI:

 Packages are drawn as red for the heaviest, blue for the lightest,
 and shades of purple in between. In the client GUI, green is used for
 packages of unknown weight. When packages are stacked up on a single
 square, the heaviest is drawn over the others.  A line is drawn from
 a package to it's destination, when known. The line uses the
 package's color.

 The status panel on the left provides information on each robot and
 package. Clicking a robot or package in a status list hilites the
 robot's or package's square on the board. For each robot or package
 on a hilited square, it is shown in the status list with a yellow
 background.

 Robots get sorted in the status panel according to move order. So
 it's often useful to click the Pause button before trying to use the
 status panel, so that they list stops jumping around.


- Matthew Flatt
  Green Jello Mold
