import java.util.List; public interface State { /* This is an interface that describes the properties that states of a state space must have in order for a minimax search algorithm to be able to find a solution. There are three methods in this interface. The methods actually define the state space, given an appropriate definition of a state class (that implements this interface), and an appropriate constructor for this class. */ /** Determines whether a goal state (that is, a terminal state) reprensents a win for the current player. If invoked for a nongoal state, this method returns an unpredictable value. @return true iff the state represents a win for the current player */ boolean findValue(); /** This method corresponds to the Goal-Test function of Russell and Norvig. @return true iff the state represents a goal state (also known as a terminal state). */ boolean isGoal(); /** This method corresponds to the Expand function of Russell and Norvig. @return a List of the successors of the given state in the state space. */ List findSuccessors(); }