
/** This is the board object that will hold references to pieces in the
arrangement they are found on the chess board.  It is implemented using an
array of ChessPiece references.  It also has a copy() method that is used to
make copies of it for the tree used in deciding how to move. */
public class Board
{
	/** This is the array of ChessPieces.  It is an 8 by 8 array of ChessPiece
	references.  Nothing more, nothing less. */
	protected ChessPiece[][] board = new ChessPiece[8][8];
	
	/** Builds a new board setup to start a new game of chess. */
	public Board()
	{
	}
	
	/** Builds a new board based on the given board.  This constructor is used in
	copy(). */
	public Board(Board b)
	{
	}
	
	/** Returns the piece at the specified location. */
	public ChessPiece getPiece(int row, int col)
	{
		return new ChessPiece(0, false);
	}
	
	/** Used to add pieces to the board.  Should only be needed by the
	constructors and the copy() method. */
	protected void setPiece(int row, int col, ChessPiece piece)
	{
	}
	
	/** Makes a move according to the specified Move object, taking pieces if
	needed (by simply overwriting their spot in the array), leaving a null
	reference behind where the piece was originally located. */
	public void movePiece(Move theMove)
	{
	}
	
	/** Returns the current material value of the board.  Treating white pieces
	as negetive and black as positive. */
	public int evaluate()
	{
		return 0;
	}
	
	/** Returns a field for field copy of this object.  It calls the copy() method
	of ChessPiece, making copies of the pieces on the board as well.  This is so
	the entire board can be manipulated independently from the actual chess board.
	*/
	public Board copy()
	{
		return new Board();
	}
	
}