Astar - a* recherche du plus court chemin

Soyez le premier à donner votre avis sur cette source.

Vue 8 292 fois - Téléchargée 975 fois

Description

bonjour,
je poste la source d'un A* codé l'an passé. C'était mon premier programme donc je me suis fortement aidé du code de "neodelphi" qui m'a permis de bien comprendre, je le remercie donc au passage ( http://www.delphifr.com/codes/ALGORITHME-RECHERCHE-PLUS-COURT-CHEMIN_31396.aspx ).
Le but est de trouver le plus court chemin entre 2 points. Dans le cas d'une carte le principe est de faire une estimation de la distance à "vol d'oiseau" pour essayer de prendre la bonne direction dès le début.
L'affichage des flèches permet de savoir d'où l'on vient. C'est de cette manière qu'on retrouve son chemin final.
Ce n'est pas du tout optimisé, mais pour débuter c'est plus simple des parcours de listes.

Deux liens sympa:
http://www.gamasutra.com/features/20010314/pinter_pfv.htm
http://www.gamedev.net/reference/programming/features/astar/

En espérant que ce là aidera d'autre personnes.

ps : Lorsque vous modifiez une option, elle sera prise en compte seulement en recliquant sur la map.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
20
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
8 octobre 2019

Bonjour à tous,
Petite remarque très personnelle quant aux critiques de CIREC, ci-dessus.
Il est vrai qu'une fonction sans paramètre ne nécessite pas, sous Delphi, qu'on la fasse suivre de parenthèse...
Mais ! Pour plus de lisibilité :
- MonResultat:=FaireCela
- MonResultat:=FaireCela()
Dans le second cas je sais de suite que "FaireCela" est une fonction ou une procédure, je n'ai pas besoin de retourner consulter les déclarations pour constater qu'il ne s'agit pas d'une variable globale ou locale. Mieux, même si c'est un peu lourd :
- MonResultat:=MonUnite.FaireCela()
A le privilège de m'envoyer directement vers la bonne unité pour examiner la fonction ou procédure en question.
Je vous avoue que je n'ai jamais eu de tendinite à force de taper sur mon clavier...
Très cordialement et sans animosité, juste une petite remarque ayant pour but de parfois simplifier la vie aux éventuels déboggeurs de passage même s'il est vrai que des conventions acceptées et respectées par tous assurent une compréhension sans équivoque dans la plupart des cas.
Patrice
Messages postés
1
Date d'inscription
samedi 22 octobre 2005
Statut
Membre
Dernière intervention
29 mars 2007

Salut,

Le code n'est pas terrible (liberations, optimisations) mais l'appli reste sympa au niveau du rendu.

Pas mal pour une premiere source.

;-).
Messages postés
17
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
12 juin 2008

Salut,
bonne source, peut être pas à 100% optimisé mais je considère aussi le A* comme un super moyen de pathfinder, terrible pour les jeux notamment, et une source fonctionnel dans notre langage préféré n'est jamais à déplorer ^^
Messages postés
3818
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
18 septembre 2020
34
Salut,

bon alors par ou commencer ...

Déjà ton Zip contient des fichiers inutiles (*.dcu; *.~*; *.ddp; *.cfg; *.dof) et le fichier "sans titre.bmp"

Ensuite un survol rapide de la source me fait remarquer ceci :
les "Constructeurs et Destructeurs" se déclare dans la partie "Public" et non "Private"
Les procédures et fonctions qui sont sans paramètres ne nécessitent pas de parenthèses

Tu as crée plein d'objets que tu ne libères jamais (Bitmap; Liste; Node)

Pour le reste tu le dis toi même :"Ce n'est pas du tout optimisé" ;)

Bonne prog ...
@+
Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.