/** * Walk in the solution steps to the goal position * * @param Solution<.Position.> sol */ private void Walk(Solution<Position> sol) { if (sol.getSol().size() > 0) { // y int w1 = sol.getSol().get(0).getState().getpX(); int f1 = sol.getSol().get(0).getState().getpY(); int h1 = sol.getSol().get(0).getState().getpZ(); int w2 = ((Position) mazeDisplayer.getCharacter()).getpX(); int f2 = ((Position) mazeDisplayer.getCharacter()).getpY(); int h2 = ((Position) mazeDisplayer.getCharacter()).getpZ(); if (section.equals("x") == true) { f1 = sol.getSol().get(0).getState().getpX(); h1 = sol.getSol().get(0).getState().getpY(); w1 = sol.getSol().get(0).getState().getpZ(); w2 = ((Position) mazeDisplayer.getCharacter()).getpZ(); f2 = ((Position) mazeDisplayer.getCharacter()).getpX(); h2 = ((Position) mazeDisplayer.getCharacter()).getpY(); } else if (section.equals("z") == true) { w1 = sol.getSol().get(0).getState().getpX(); h1 = sol.getSol().get(0).getState().getpY(); f1 = sol.getSol().get(0).getState().getpZ(); w2 = ((Position) mazeDisplayer.getCharacter()).getpX(); f2 = ((Position) mazeDisplayer.getCharacter()).getpZ(); h2 = ((Position) mazeDisplayer.getCharacter()).getpY(); } if (w2 > w1) mazeDisplayer.moveLeft(this.section); else if (w2 < w1) mazeDisplayer.moveRight(this.section); else if (h2 > h1) mazeDisplayer.moveUp(this.section); else if (h2 < h1) mazeDisplayer.moveDown(this.section); else if (f2 > f1) movePageDown(); else if (f2 < f1) movePageUp(); sol.getSol().remove(0); } else timer.cancel(); }