Interface for the Mancala Game state class. The Mancala board is represented by a 2xC array. The following shows what indices correspond to the locations of the buckets. | 1,0 | 1,1 | 1,2 | 1,3 | 1,4 | 1,5 | ... | 0,0 | 0,1 | 0,2 | 0,3 | 0,4 | 0,5 | ... Player buckets are stored in a 1x2 array (scores). public class MancalaGameState { // Constructor for a new Mancala gamestate with the specified number of // stones in each bucket public MancalaGameState(int startingStones); // Creates a copy of the game state public MancalaGameState copy(); // Resets the game to the initial state public void reset(); // Accessors // Get the current player public int CurrentPlayer(); // Get the number of stones at the specified bucket public int stonesAt(int x, int y); // Get the number of rows on the board public int rows(); // Get the number of columns on the board public int cols(); // Check whether the move is valid public boolean validMove(int col); // Play at a given column, throws an Exception if the move is not valid public GameState play(int col) throws Exception; // Check if the state is terminal public boolean checkEndGame(); // Compute the final score (should be called once at the end of a game) public void computeFinalScore(); // Get the score of the specified player public int getScore(int i); // Prints the state in the console public void printState() }