28-10-2009, 03:21 PM
Autre suggestion :
1) Calcule le trajet du point A au point B en ligne droite
2) Pour chaque case du parcours, vérifie si elle est "traversable", Si c'est le cas passe au point suivant du parcours.
3) si la case n'est pas "traversable" alors
3-1)Stocke dans X le dernier point "traversable"
3-2) continue ton parcours pour rechercher le prochain point "traversable" que tu stockeras dans Y
3-3) Applique l'algo A* entre X et Y, ce qui te fera contourner l'obstable non "traversable"
3-4) incorpore ce sous-parcours dans le parcours global entre les pionts X et Y
Du coup, ça te donne un chemin toujours en ligne droite, sauf qu'il contournera les obstacles.
Cet algo n'est pas optimal car il contourne littéralement l'obstacle pour retrouver l'ancien parcours.... mais pour les portions sans obstacle il devient optimal.
1) Calcule le trajet du point A au point B en ligne droite
2) Pour chaque case du parcours, vérifie si elle est "traversable", Si c'est le cas passe au point suivant du parcours.
3) si la case n'est pas "traversable" alors
3-1)Stocke dans X le dernier point "traversable"
3-2) continue ton parcours pour rechercher le prochain point "traversable" que tu stockeras dans Y
3-3) Applique l'algo A* entre X et Y, ce qui te fera contourner l'obstable non "traversable"
3-4) incorpore ce sous-parcours dans le parcours global entre les pionts X et Y
Du coup, ça te donne un chemin toujours en ligne droite, sauf qu'il contournera les obstacles.
Cet algo n'est pas optimal car il contourne littéralement l'obstacle pour retrouver l'ancien parcours.... mais pour les portions sans obstacle il devient optimal.