Uma dica no A*

0 respostas
C

Já implementei quase todo o codigo, mas estou com uma ´duvida para implementar uma parte:

Retire-o da lista aberta e o acrescente à lista fechada.

  1. Confira tudo dos quadrados adjacentes. Ignorando os que estão na lista fechada ou não-passável (terreno com paredes, água, ou outro terreno ilegal), acrescente quadrados à lista aberta, se eles  não estiverem na lista aberta. Faça o quadrado selecionado o pai dos quadrados novos.
    
  2. Se um quadrado adjacente já estiver na lista aberta, confira para ver se este caminho para aquele quadrado for melhor. Em outras palavras, confira para ver se o G para aquele quadrado é mais baixo se nós usarmos o quadrado atual para chegar lá.  Se não for, não faça nada.
    
  3. Por outro lado, se o custo G do novo caminho é menor, troque o pai do quadrado adjacente para o quadrado selecionado (no diagrama acima, mude a direção do ponteiro para apontar para o quadrado selecionado). Finalmente, recalcule o F e G daquele quadrado. Se isto lhe parecer confuso, você verá ilustrado abaixo.
    

Não imagino a melhor forma de implementar isto…

Penso em salvar todos os G e os abertos em uma lista…mas não sei se é a melhor idéia.

Criado 3 de junho de 2007
Respostas 0
Participantes 1