//GamePlayer.java


/** 
 *
 * @author  Sean Bridges
 * @version 1.0
 *
 * A game player can make moves on a board. It is given a copy of the board,
 * and asked for the move that it wishes to make.
 * 
 */
public interface Player 
{

    /**
     * Passed a copy of the board, asked what move it would like to make.
     * 
     * This method is called from a seperate thread that is created each time a 
     * game is started or restarted. Each time start or restart is called on 
     * the gameMaster, a new thread is created.
     *
     * Because of this, there is the potential for a player to be asked for
     * its move, and for the game to be stopped or restarted before the player
     * can decide on a move.  In that case the GameMaster will interrupt the
     * thread that called getMove(), and ignore the results returned.
     */
    public Move getMove(Board b);
  
    /**
     * Return the name of the player.
     */
    public String getName();
  
    /** 
     * Get the players number
     */
    public int getNumber();
  
  
}