//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();
  
  
}
