CS61b Project3 User Interface

This software is set up as a Java package.  We are not including the
source code, because it contains some things that would be useful
in your solutions.  For various reasons, we have also put the Move 
class and Player classes in this package as well, which means that 
you need to make a few simple changes to your files:

 1) Remove your copy of Move.java and Player.java from your pj3 directory.  
    The only java files remaining should be your MachinePlayer.java and any 
    files that it uses.  (You can keep the original copies around for
    reference, and we will not be deleting them from the pj3 directory,
    since you will need to understand the interfaces in them.)

 2) To your MachinePlayer.java file, add, "import NetworkGUI.*;".  
    You will also need to add this import statement to any other files 
    that use Move or Player variables.  

 3) Avoid using the class name "NetworksGame" or anything starting 
    with a capital "X", as our NetworkGUI package uses them.

 4) Be sure your CLASSPATH variable is set correctly.  It should be
    unless you have done something to your .login or .cshrc files.
    You can print the variable using "printenv CLASSPATH" and should
    see something like:

            .:/home/ff/cs61b/lib/java/classes:/home/ff/cs61b/lib/java/classes

    (Actually, it will probably have the second path in the list twice,
    which should be fixed by won't hurt anything.  It's very important
    that the . is the first item in the list, or the version that tests
    your MachinePlayer will not work.)

The NetworkGUI package contains the Player and Move classes, which are the 
same as in the project handout, except that Move includes a toString() 
method that you may find useful for debugging.  

The NetworksGame program is invoked using one of the 
following commands:

   java NetworksGame
     In this version, a human player competes against a very 
     naive machine player called XRandom, which is taking random
     legal moves.  This is mainly used for learning to play the game.

   java NetworksGame humans
     This sets up a game in which two human players play against each
     other.  The two players share the same mouse, with is a bit 
     inconvenient, but this option is useful if you want to configure
     a particular board and try some moves to see what is legal.

   java NetworksGame test
     This used to play your MachinePlayer against a human player.
     Your MachinePlayer.class file (and any files that it depends 
     on) must be in the directory from which you run this version.

Final note: there seems to be a subtle problem with the human player
interface, in that it sometimes "hangs" when you should be able 
make a move.  We will try to fix this, but in the mean time, you 
may need to "quit" when the game gets stuck in this manner.