Ejemplo n.º 1
0
  /**
   * 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();
  }