abstract public class BoardAbstract
{
   //declarations of variables and structures

   //the Puzzle Board
   public int PuzzBoard[][] = new int [4][4];

   //temp array used for the generation of a puzzle board
   private int RandArrGen[] = new int[16];

   // the column num and row num of the empty tile
   private int EmptySpotR = 0;
   private int EmptySpotC = 0;

   private int ManhattanD;


   // write two constructors one that generates a random initial
   // configuration and another that takes in an existing configuration
   // as an argument and makes a new copy of it.


   abstract public BoardSuccessors CreateBoardSuccessors();
   // override this method to generate successors of a board configuration.
   // make sure you also compute the manhattan distance of the board
   // configuration.

   abstract public void displayBoard();
   // override this method to print the board on the screen in case you
   // are not using the applet.

   abstract private void CalcManhatDist();
   // override this method to compute the manhattan distance of a board
   // configuration.

}   
