PuzzleState start1 =
new PuzzleState('2', '8', '3', '1', '6', '4', '7', ' ', '5'); // 5 moves
PuzzleState start2 =
new PuzzleState('3', '6', '4', '1', ' ', '2', '8', '7', '5'); // 10 moves
PuzzleState start3 =
new PuzzleState('3', ' ', '4', '1', '6', '5', '8', '2', '7'); // 13 moves
PuzzleState start4 =
new PuzzleState('2', '1', '3', '8', ' ', '4', '6', '7', '5'); // 18 moves
PuzzleState start5 =
new PuzzleState('4', '2', ' ', '8', '3', '6', '7', '5', '1'); // 20 moves
PuzzleState start6 =
new PuzzleState('1', '6', '3', '4', ' ', '8', '7', '2', '5'); // 24 moves
PuzzleState start7 =
new PuzzleState('5', '2', '7', '8', ' ', '4', '3', '6', '1'); // 30 moves
PuzzleState start8 =
new PuzzleState('5', '6', '7', '4', ' ', '8', '3', '2', '1'); // 30 moves
PuzzleState finalState =
new PuzzleState('1', '2', '3', '8', ' ', '4', '7', '6', '5');
List<State> initialStates = new ArrayList<State>();
List<State> finalStates = new ArrayList<State>();
List<Integer> moveCounts = new ArrayList<Integer>();
initialStates.add(start1); finalStates.add(finalState); moveCounts.add(5);
initialStates.add(start2); finalStates.add(finalState); moveCounts.add(10);
initialStates.add(start3); finalStates.add(finalState); moveCounts.add(13);
initialStates.add(start4); finalStates.add(finalState); moveCounts.add(18);
initialStates.add(start5); finalStates.add(finalState); moveCounts.add(20);
initialStates.add(start6); finalStates.add(finalState); moveCounts.add(24);
initialStates.add(start7); finalStates.add(finalState); moveCounts.add(30);
initialStates.add(start8); finalStates.add(finalState); moveCounts.add(30);
setInitialStates(initialStates);
setFinalStates(finalStates);
setMoveCounts(moveCounts);