package g08.problem.npuzzle; import core.problem.Action; import core.problem.Problem; import core.problem.State; import core.solver.Node; import java.util.Deque; /** * ClassName : Npuzzle //类名 * Description : //描述 * Author : WLS //作者 * Date: 2021-04-15 11:01 //时间 */ public class Npuzzle extends Problem { public Npuzzle(State initialState, State goal) { super(initialState, goal); } public Npuzzle(State initialState, State goal, int size) { super(initialState, goal, size); } @Override public boolean solvable() { int cnt = 0; char[] init = initialState.toString().toCharArray(); char[] go = goal.toString().toCharArray(); for(int i = 0;iinit[j]) { cnt++; } } } if(cnt%2==1) { System.out.println("unsolvable"); return false; } return true; } @Override public int stepCost(State state, Action action) { return 0; } @Override protected boolean applicable(State state, Action action) { return false; } @Override public void showSolution(Deque path) { System.out.println("showSolution"); } @Override public void draw() { initialState.draw(); System.out.println(); goal.draw(); System.out.println("======================="); } @Override public void printPath(Deque path) { System.out.println("printPath"); } }