public class PuzzleProblem {
public PuzzleProblem(PuzzleState initialState) { ... }
public boolean success() { ... }
public PuzzleState getCurrentState() { ... }
public void setCurrentState(PuzzleState currentState) { ... }
public String getIntroduction() { ... }
...
}