Merci pour le filon, d'après ce que je vois, théoriquement, ce serais un Astar qui:
récupères un point A ayant le plus petit score F dans la liste ouverte, récupères les points B C D E ayant le score F le plus petit par rapport au point A(la distance euclidienne calculé par rapport au point A sur ces 4points et non par rapport au point final).
Ma vision est-elle exacte? ,)
Edit: J'ai beaucoup de mal pour le bug actuel du script pour les cases carré omnidirectionnel. En effet certains chemin reste irrésolu sans raison, comme celui-ci en pièce jointe n°1. En faisant des hightlight sur le rendu de la carte pour afficher les cases qui ont été analysé, on se rends bien compte que toutes les possibilité ne sont pas calculé(voir pièce jointe n°2), et la fonction sort sur le return FALSE; du if(count($this->open) == 0) (j'ai vérifié en remplaçant le return par un print_r de la liste ouverte suivi d'un exit pour ne pas généré d'erreur sur le SVG...).
Ne faites pas attention au point de départ de la pièce jointes n°2, ils sont faussé par l'hightlight des cases analysés. Les points de départ sont toujours: 0,0 et arrivée: 9,9.
Je me casse la tronche à chercher le truc qui bloques... Mais je ne vois pas le suspect...
Edit^2: On peut voir aussi dans la pièce jointe n°3 que même si le chemin est réellement irrésolvable, toutes les cases "atteignable" ne sont pas analysé, alors qu'elles le devraient.
Edit^3: Yes, j'ai résolu le bug =) je met actuellement les classes à jour avec notamment la séparation des class Map & Astar, avec un exemple de code pour les utiliser.
Edit^4: Update réalisé.
récupères un point A ayant le plus petit score F dans la liste ouverte, récupères les points B C D E ayant le score F le plus petit par rapport au point A(la distance euclidienne calculé par rapport au point A sur ces 4points et non par rapport au point final).
Ma vision est-elle exacte? ,)
Edit: J'ai beaucoup de mal pour le bug actuel du script pour les cases carré omnidirectionnel. En effet certains chemin reste irrésolu sans raison, comme celui-ci en pièce jointe n°1. En faisant des hightlight sur le rendu de la carte pour afficher les cases qui ont été analysé, on se rends bien compte que toutes les possibilité ne sont pas calculé(voir pièce jointe n°2), et la fonction sort sur le return FALSE; du if(count($this->open) == 0) (j'ai vérifié en remplaçant le return par un print_r de la liste ouverte suivi d'un exit pour ne pas généré d'erreur sur le SVG...).
Ne faites pas attention au point de départ de la pièce jointes n°2, ils sont faussé par l'hightlight des cases analysés. Les points de départ sont toujours: 0,0 et arrivée: 9,9.
Je me casse la tronche à chercher le truc qui bloques... Mais je ne vois pas le suspect...
Edit^2: On peut voir aussi dans la pièce jointe n°3 que même si le chemin est réellement irrésolvable, toutes les cases "atteignable" ne sont pas analysé, alors qu'elles le devraient.
Edit^3: Yes, j'ai résolu le bug =) je met actuellement les classes à jour avec notamment la séparation des class Map & Astar, avec un exemple de code pour les utiliser.
Edit^4: Update réalisé.