Boa Noite Galera!
Estou com um dúvida em programação java!
O Trabalho é para desenvolver um quebra cabeça de 8 peças, e montar uma Busca em Profundidade, Largura, Gulosa e A*!
Mas estou com problemas de cara na Busca em profundidade pois ela está com estados repetidos!
Se alguém poder me ajudar realmente ficarei Muito Grato!
essa é a parte da Busca em Profundidade em que não estou entendendo o porque de não tratar esses estados!
public ArrayList<Estado> EmProfun(Estado atual){
Stack<Estado> pilha = new Stack<>();
pilha.push(atual);
while(!pilha.isEmpty()){
Estado no = pilha.pop();
if(no.VerificaOFinal()){
System.out.println("Caminho:" +caminho.toString());
System.out.println("Contador: "+count);
caminho.add(no);
return caminho;
}
if((! pilha.contains(no))){
System.out.println("Entrou");
GeradordeEstados ge = new GeradordeEstados(no.getEstadoAtual());
pilha.addAll(ge.proximoPasso());
caminho.add(no);
count++;
}
}
return null;
}
Mais abaixo deixo o código para poderem ver melhor a minha situação valeu ai...
BuscaemLargura.java
BuscaEmProfundidade.java
Estado.java
GeradordeEstados.java
Interface.java
Matriz.java