//Move.java

/** 
 *
 * @author  Sean Bridges
 * @version 1.0
 * 
 * The move represents a single move in a game.
 * A move can represent itself as an integer, and 
 * knows the player number of the player made it.
 */
public interface Move {

	/**
	 * The default method of accessing the moves value.
	 * This method is to avoid casting.  Rather than having 
	 * a board cast the Move to its real class, it can access 
	 * the move as an int.  At times though it may be neccassary
	 * to cast the Move to its true class.
	 *
	 * Casting can be an expensive process.  When time is an issue, eg for
	 * games that try thousands of moves in order to determine the best one, 
	 * it is better to avoid casting.
	 *
	 * The clever programmer may also use the toString() method to 
	 * represent the move as a String.
	 */

	public int toInt();
  
	/**
	 * The player who made the move.
	 */
	public Player maker();
  
}
