Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

382 connectés actuellement

29413127 visiteurs
depuis l'ouverture

5666 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Comptoir Du clickeur

RPG Fusion

Level Up!

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Java] (Résolu) PathFinding


Mack - posté le 26/06/2013 à 16:27:16 (2290 messages postés) - staff

❤ 0

Domaine concerné: Prog
Logiciel utilisé: Java
Salut !

En faite, en ré-adaptant le code de La Tour du Crepuscule pour ne plus utilisé d'API, il me manque une chose :
Le pathfinding qui me sert pour relier les différentes salles de la carte.

Le soucis, c'est que j'ai beau essayer de regarder sur Internet, impossible de trouver quoi que ce soit qui me permettent d'en refaire un ...


Voila, donc si quelqu'un s'y connais pour en faire un, je suis carrément preneur !

( Je prend note de tout les commentaires, même si je n'y répond pas )


Tasslehoff - posté le 26/06/2013 à 17:00:00 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Je sais pas si ça peut t'aider :
http://www.policyalmanac.org/games/aStarTutorial.htm

~~


Grim - posté le 26/06/2013 à 17:33:48 (251 messages postés)

❤ 0

Moi je m'étais servis de cette excellente page :
http://theory.stanford.edu/~amitp/GameProgramming/
Sinon j'avais écris un petit article sur la recherche de chemin dans des digraphes (Djikstra et Warhsall Floyd) en JAVA/Haskell/OCAML mais je ne le trouve plus, je peux le chercher si tu veux ?

http://funkywork.github.io/


Grade - posté le 26/06/2013 à 18:01:07 (905 messages postés)

❤ 0

Je te conseille, comme Tasslehoff l'a proposé, d'utiliser l'algorithme A*. Il est très rapide et très simple d'utilisation.

Chaque noeud de l'algorithme doit garder en mémoire : La distance entre le point de départ et la position actuelle (disons G), la distance entre la position actuelle et le point d'arrivée (à vol d'oiseau, appelons ça H), la somme de ces deux variables (disons F), et enfin un pointeur vers le noeud parent.

L'algorithme est géré par deux listes, une liste dite ouverte, et une autre dite fermée. La liste fermée contiendra tous les noeuds qui ont déjà été "vérifiés". Au tout départ, la liste fermée doit donc être vierge, et la liste ouverte doit contenir le premier point (le point de départ).

À chaque tour de boucle, l'algorithme doit aller chercher le noeud (dans la liste ouverte) possédant le plus petit F. Ce noeud doit passer dans la liste fermée, et on va ajouter 4 (ou 8 si tu veux inclure les diagonales) noeuds autour de cette position si c'est possible (donc si il n'y a aucun obstacle). On vérifie également qu'il n'y a pas un noeud dans la liste fermée sur cette position. Si tout est bon, alors on vérifie si il n'y a pas un noeud dans la liste ouverte à cette position, si il n'y en a pas : On l'ajoute, sinon, on modifie l'existant (c'est-à-dire on recalcule le G, et le F du coup, et surtout on modifie le noeud parent).

Ensuite, dès qu'il y a un noeud "fermé" à la position d'arrivée, cela veut dire que l'algorithme est fini. Il ne te reste plus qu'à repartir de ce noeud et à aller de parent en parent pour retrouver le chemin.

Voilà, j'espère avoir été assez clair. L'avantage de cet algorithme c'est qu'il est relativement rapide, donc parfait pour les intelligences artificielles. Après, il ne choisira pas forcément le chemin le plus rapide à chaque fois (mais la plupart du temps si), mais arrivera toujours à destination.
Si tu cherches un algorithme encore plus complexe, alors dans ce cas je te conseille d'aller jeter un coup d'oeil sur l'algorithme Djikstra (comme l'a cité Grim).

J'avais réalisé cet algorithme sur RPG Maker 2003, il faut que je réupload le projet.

MMORPG 2D Amateur | http://www.shinsekaionline.com


Mack - posté le 27/06/2013 à 11:45:40 (2290 messages postés) - staff

❤ 0

Bon, j'ai passé une bonne partie de ma nuit à farfouiller, et j'ai finalement trouvé ça :
http://www.javafr.com/codes/PATHFINDING-ASTAR_42813.aspx

Donc du coup j'ai réussi à adapter plus ou moins à ce que je voulais.


Merci quand même à vous :D.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Index du forum > Entraide > [Java] (Résolu) PathFinding

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers