[R] Application de l'algorithme de Dijkstra

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

[R] Application de l'algorithme de Dijkstra

#1

Message 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!
Modifié en dernier par sozary le dim. 03 août 2014 15:56, modifié 1 fois.
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#2

Message 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 ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#3

Message 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.
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#4

Message 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 :wink:
Fichiers joints
Array3381.au3
(67.75 Kio) Téléchargé 73 fois
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#5

Message 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 :P )! 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!
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#6

Message 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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#7

Message par timmalos »

Quelle est la difference entre Array.au3 et ton include mikell?
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#8

Message 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?
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#9

Message par jchd »

La page anglaise est mieux documentée (pas surprenant).
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#10

Message 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!
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Application de l'algorithme de Dijkstra

#11

Message 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 :roll:

@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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre