salut
concernant le A*, il me semble que Gm a une implantation plutôt pas mal de cet algo. Même si c'est pas complètement nickel, ça marche déjà pas mal.
Il faut utiliser le mp_grid. Tu recherches du pathfinding pour un jeu en isométrique ou en vue de dessus ?
Quelques exemples que j'avais trouvé, assez simples, je crois. Je ne sais plus de qui ils sont, mais je pense que c'est préciser dans le fichier :
http://blendman.free.fr/dev/gm/pathfinding/Tu y trouveras 3 exemples, en espérant que cela t'aide
.
Sinon, je vais te donner mon interprétation de ce que j'en avais lu, mais je ne dis pas que c'est exactement ça le pathfinding, hein
.
C'est juste l'idée que je m'en fais
.
Pour schématiser, il semble qu'il faille prendre la recherche du chemin comme une addition au restaurant dont le but est de payer le moins cher possible
.
Tout d'abord, tu as des cases, situées dans un tableau, donc tu connais ces cases. Chaque case à un "cout" en fonction des cases à coté, et des cases départ et arrivée.
Tu as une case de départ (x,y,) (cout =0) et une case d'arrivée (xx,yy) (cout =1 ou 2, ça dépend de la case d'avant), que tu connais précisément.
Donc, tu calcules la somme la moins cher (ou l'une des sommes) pour y arriver (lignes, ou diagonale ou les deux) par exemple, imaginons que tu démarres sur la case (3,4) et tu vas en (6,2)
Avec ça, tu connais normalement la direction. Tu sais que tu dois aller au nord/est (en haut , à droite). Tu dois donc calculer par rapport à cette direction-là.
une des sommes serait : (6-3)*2 + (4-2)*2 = 10 euros pour y aller. C'est une des chemins possible.
Tu peux aussi faire le calcul avec les diagonales :
if x<xx and y<yy {cout = 1} // on va au nord-est .
if x<xx and y=yy {cout = 2}
etc...
tu vas sur la case obtenue, tu l'ajoutes dans ta liste et tu continues avec la case suivante.
Tu pourras donc sans doute faire moins de 10 euros s'il n' y pas d'obstacle entre le départ et l'arrivée. Mais s'il y a des obstacles, ça risque d'être plus cher
.
les cases en haut/bas/droite/gauche valent 2 euros , alors que les diagonales coutent 1 euro (ou inversement, cela dépend de ce que tu veux faire).
Tu vérifies à chaque case si tu peux aller à gauche, droite, bas, haut ou en diagonal.
Si tu peux aller dans une des directions, tu ajoutes cette/ces cases à une liste dite "ouverte", ainsi que la somme que cela fait.
Et ainsi de suite, jusqu'à atteindre ton but.
Lorsque tu atteins ton but, tu calcules les sommes obtenues par tes divers chemins, et tu choisis le moins cher
.
voilà, c'est comme cela que j'ai cru comprendre la méthode. Après, il doit y avoir des détails qui m'échappent, car je ne l'ai pas encore mis en pratique réellement
. Mais disons que c'est un début de réponse, sans le prendre pour la vérité absolue concernant le A* ,c ar ce n'est pas du tout le cas
).