public void imprimir() {
    Vector list = new Vector();
    Puzzle no = getSolucaoPuzzle();
    // adicionar a lista de add to answer list
    list.add(no);
    // encontrar no pai
    int idPai = no.getIdPai();
    while (idPai != -1) {
      no = (Puzzle) usados.elementAt(idPai);
      list.add(no);
      idPai = no.getIdPai();
    }

    for (int i = 1; i <= list.size(); i++) {
      if (i == 1) {
        System.out.println("Inicial:");
        System.out.println(list.elementAt(list.size() - i));
      } else {
        System.out.println("Movimento nº " + (i - 1) + ":");
        System.out.println(list.elementAt(list.size() - i));
      }
    }
    System.out.println("FIM!");
  }