private boolean expandiNos(Puzzle p) {
   int[] test;
   Puzzle temp;
   lista.remove(p);
   int parentID = usados.size();
   usados.add(p);
   // se heuristica = 0, esta no obejectivo
   if (p.getHeuCurt() == 0) {
     return false;
   }
   test = p.cima();
   temp = new Puzzle(test, p.eCurto(), p.getPerfundidade(), parentID);
   adicinarLista(temp);
   test = p.baixo();
   temp = new Puzzle(test, p.eCurto(), p.getPerfundidade(), parentID);
   adicinarLista(temp);
   test = p.esquerda();
   temp = new Puzzle(test, p.eCurto(), p.getPerfundidade(), parentID);
   adicinarLista(temp);
   test = p.direita();
   temp = new Puzzle(test, p.eCurto(), p.getPerfundidade(), parentID);
   adicinarLista(temp);
   return true;
 }