@Override public boolean isPossibleMove(RobotMove action) { int dir = action.getDir(); switch (dir) { case 0: return location.getNorth() != null; case 1: return location.getEast() != null; case 2: return location.getSouth() != null; case 3: return location.getWest() != null; default: return false; } }
@Override public boolean performAction(RobotMove action) { if (isPossibleMove(action)) { int dir = action.getDir(); switch (dir) { case 0: location = location.getNorth(); break; case 1: location = location.getEast(); break; case 2: location = location.getSouth(); break; case 3: location = location.getWest(); break; } return true; } else { return false; } }
public String toString() { return location.toString(); }
@Override public int h() { return location.manhattan(goal); }