Comme le préconise Patrick Lester dans son article Using Binary Heaps in A* Pathfinding, j'ai implémenté le gestion de la liste ouverte sous forme d'arbre binaire (binary heap) que l'on conserve trié en permanence pour ne pas avoir à chercher la case ayant le cout minimum en bouclant sur la liste ouverte. Et bien dans l'état actuel des choses, ce n'est pas plus performant !!! :(

Pourtant, de ce que j'en ai compris, cela devrait aller beaucoup plus vite ! 8O Mais une petite surveillance su temps pris par chaque étape de la recherche indique que cette boucle sur la liste ouverte n'est pas ce qu'il y a de plus lent ... et en plus, chaque fonction indépendemment prend moins de 1ms., donc impossible de tracer le temps ... :?

Voila donc un exemple qui fait la comparation des deux méthodes sur chaque fois le même trajet. La carte est de dimensiosn 30x30 pour tester sur un peu plus grand que précédemment. Vous pouvez aussi télécharger le fichier source de la classe PathFinder.as ... si vous découvrez une explication, n'hésitez pas à me faire signe ! ;) L'activation des arbres binaires se fait avec la variable statique BINARY_HEAPS qui est un booléen.

::Télécharger pathfinder.zip::