![]() |
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Ouvrir sur le forum | Recherche | Messages du jour | Marquer les forums comme lus |
Tutoriels Tutoriels dédiés au développement sur d'autres supports |
Publicité |
![]() |
|
Outils de la discussion | Modes d'affichage |
![]() |
#1 |
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 576
|
![]() Algorithme A* (Recherche de chemin) Ce tuto est est traduction de ce tutoriel. L'algorithme A*(prononcé A star) peux être compliqué pour les débutant. Ce tuto est fais pour les débutant. Introduction: La zone de recherche Supposons que nous avons quelqu'un qui veut aller du point A au point B. Supposons qu'un mur sépare les deux points. Sur la figure 1 le carré rouge est le point B ,le carré vert est le point A et le bleu est le mur. figure 1 En premier nous divisons notre zone en plusieurs case afin de simplifier l'algorithme,vous pourrez le diviser en Tile dans votre jeu. Les cases sont appelées noeud (Nodes en anglais). Commencer la recherche Maintenant que nous avons divisé notre zone, nous devons commencer à recherché le plus court chemin entre le point A et le point B. Nous commençons la recherche grâce à ses étapes:
Je vais reformuler un peux tous ça: L'openlist contient tous les carrés à analyser. Pour analyser un carré on regarde ces carrés adjacents,si ces carrés adjacents sont praticables,on les ajoutes à l'open list sinon on ne fait rien. Un carré dans l'openlist à toujours un parent,c'est à dire le carré adjacent qui nous à permis de le découvrir. Une fois que nous avons analysé un carré,on le supprime de l'openlist pour le mettre dans la closelist qui contient tous les carrés analysés. Sur la figure ci-dessous ,Le carré vert est le point de départ. Il est entouré de bleu pour montrer qu'il à été ajouté à la closelist. Tous les autres carrés adjacents sont entourés de vert car ils ont été ajoutés à l'openlist pour être analysé. Ils ont tous un petit pointeur gris pour montrer qui est leur parent, ici le carré vert est leur parent. figure 2 Attribut du score La clé pour déterminer les carré utilisés pour trouver le chemin le plus court est donné par cette équation : F = G + H G est la coût du déplacement du point de départ jusqu'au carré analysé. H est le coût de la distance (sans diagonal) du point d'arrivé jusqu'au carré analysé. Nous allons instaurer les coût. Un déplacement ![]() Un petit schema pour comprendre : On voit bien sur la case a droite du carré vert où il y a marqué les lettres, que les valeurs corresponde, ce carré est à un déplacement à droite du point de départ, donc G=10 et il est a 3 carré du point d'arrivé,donc H=30. Ensuite on continu la recherche sur le carré qui a la valeur F la moins élevé. Et après on arrive sur notre carré rouge. Pour retrouver le chemin c'est très simple,on regarde le carré qui à decouvert le carré rouge puis le carré qui à découvert le carré qui carré qui découvert le carré rouge etc etc de parent à parent jusqu'au carré vert. ![]() Voilà ce tuto est terminé, maintenant à vous de l' implémenté dans votre jeux ![]()
__________________
Dernière modification par Cortes48 ; 07/09/2008 à 15h23. |
![]() |
![]() |
Publicité |
![]() |
#2 |
Membre confirmé
Date d'inscription: 10/11/2005
Localisation: ...
Messages: 1 464
|
![]() Merci, c'est sympa.
![]() Par contre... la différence participe passé/verbe à l'infinitif... à revoir... ! oO
__________________
"S'il n'y a pas de solutions c'est qu'il n'y a pas de problème ..." < mon devblog > ... < ![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 576
|
![]() Merci , j'essaye de corrigé les fotes
__________________
|
![]() |
![]() |
![]() |
#4 | |
Revenant
Date d'inscription: 07/07/2006
Localisation: dining in Hell
Messages: 3 406
|
![]() Tuto sympa oui, merci.
Citation:
Sinon tu pourrais citer la base théorique de ton algorithme.
__________________
Signature absente |
|
![]() |
![]() |
![]() |
#5 |
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 576
|
![]() Je suis dejà en cochon , je suis protéger de dolarcles
![]()
__________________
|
![]() |
![]() |
![]() |
#6 |
Membre confirmé
Date d'inscription: 08/10/2006
Localisation: Sophia-Antipolis
Messages: 1 247
|
![]() |
![]() |
![]() |
![]() |
Liens sociaux |
Publicité |
Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s)) | |
Outils de la discussion | |
Modes d'affichage | |
|
|
![]() |
||||
Discussion | Auteur | Forum | Réponses | Dernier message |
[Offre d'emploi] Recherche pixel artist / CDI | zeGouky | [DEV] Divers | 37 | 20/07/2007 22h52 |
Moteur de recherche Web pour PA | Dr.Vince | Le Site & Le Forum | 37 | 04/04/2007 16h19 |
![]() |
Getget94 | Aide au développement | 30 | 07/10/2006 12h50 |
Recherche Save Jeux DS pour SC | ktastroff | [NDS] Divers | 3 | 13/12/2005 21h17 |
[projet] Recherche codeur pour projet RPG | thoduv | [DEV] Divers | 2 | 03/12/2005 18h46 |