Page 1 sur 1
[R] Application de l'algorithme de Dijkstra
Posté : sam. 02 août 2014 22:16
par sozary
Bon, eh bien encore bonjour!
Je voudrais utiliser la méthode de pathfinding précédemment utilisée
ici.
Mais je n'arrive pas à faire coïncider les données: j'ai une grille de 40x40 cases, et j'ai des obstacles dessus. Je veux donc que mon personnage utilise le chemin le plus court pour se diriger vers l'endroit où l'utilisateur a cliqué! Mais ici, la méthode de Dijkstra me semble difficile à utiliser, car nous avons des distances entres chaque cases, donc de très nombreuses valeur à entrer!! Je suis sûr que ce n'est pas la bonne solution de tout entrer à la main

!
Merci d'avance!
Re: [...] Application de l'algorithme de Dijkstra
Posté : sam. 02 août 2014 22:47
par mikell
Faut pas entrer des valeurs, faut penser en coordonnées
Mais pour ce que tu veux faire
l'algorithme A* est idéal (c'est une extension de l'algorithme de Dijkstra)
Tu as regardé le lien que j'ai mis dans ton sujet précédent ?
Re: [...] Application de l'algorithme de Dijkstra
Posté : sam. 02 août 2014 23:17
par sozary
Oui! Mais il y avait une erreur avec _ArrayCreate(), j'ai cherché un peu mais du coup sa marchait plus du tout

! Sinon je me renseigne sur A star plus sérieusement! Mais je pensais que la méthode Dijkstra à elle seul résoudrais mon soucis.
Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 00:04
par mikell
Moui j'ai eu le même problème
Essaie carrément dans le script A_Star.au3 de remplacer l'include Array.au3 par celui-là ( #include "array3381.au3" )
ça vaut le coup

Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 14:38
par sozary
Merci Mikell, mais voilà, vous m'avez largement surestimé!
Après plusieurs relectures, je n'ai toujours pas compris le code source de votre fichier A* (bien que maintenant je sais qu'on peut colorier des input en noir

)! Alors voilà, si vous en avez le temps, pourriez vous m'écrire l'algorithme de l'A* en langage naturelle? Du genre SI la case en haut est libre ALORS faire sa etc..
Merci d'avance!
Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 14:47
par jchd
Allons, une recherche sur ton meilleur copain prend cinq secondes et ramène
ce lien en premier, en français et parfaitement digeste.
Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 14:50
par timmalos
Quelle est la difference entre Array.au3 et ton include mikell?
Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 14:54
par sozary
Mais oui! Pourtant moi il est mal passé! Bon je vais me pencher un peu plus sur cette page, mais m'attendais à trouver un tutoriel sur Open Classroom mais bon! Merci quand même ^^!
"A* estime ensuite la distance qui sépare ce nœud du but à atteindre", ça par exemple, bah c'est pas bien passé, et je cogite encore sur le sens de cette phrase, comment l'algorithme fait?
Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 15:51
par jchd
La page anglaise est mieux documentée (pas surprenant).
Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 15:56
par sozary
Oui, alors j'ai trouvé ceci:
-
http://wiki.gamegardens.com/Path_Finding_Tutorial
-
http://www.gamedev.net/page/resources/_ ... ners-r2003
Ils expliquent plutôt bien et ce n'est pas forcément très complexe à traduire (surtout avec google traduction à côté).
Je mets ce sujet résolus, mais je garantis pas de réussir à faire cet algorithme! Mais j'ai toutes les clefs en main, je ne devrais pas avoir trop de soucis! Merci pour tout en tout cas!
Re: [...] Application de l'algorithme de Dijkstra
Posté : dim. 03 août 2014 19:26
par mikell
@timmalos
Mon include est en fait l'include Array.au3 de la version 3.3.8.1
Va savoir pourquoi, le script en question refuse de fonctionner avec l'include de la version actuelle
Il y a eu beaucoup de réécritures de fonctions _Array*, et j'ai eu la flemme de rechercher pour les fonctions _Array* utilisées dans le script le détail qui pouvait faire la différence
@sozary
Je confesse ne pas avoir disséqué le script, je l'ai juste survolé et adapté à ma sauce pour pouvoir l'utiliser dans un code à moi, donc pour donner des explications je ne suis pas vraiment au top...
Le spécialiste matheux c'est jchd