Bonsoir,
je cherche un pathfinding A* en VB.NET sous forme de coordonnées X ; Y.
Quelqu'un peut m'aider ?
Bonsoir,
je cherche un pathfinding A* en VB.NET sous forme de coordonnées X ; Y.
Quelqu'un peut m'aider ?
Dernière modification par Sankasssss ; 07/03/2012 à 21h51. Motif: Enlèvement du tag [VB.NET] du titre vu que la discussion est dans le forum concerné.
Bonjour,
il n'y a pas de code préfait pour ça,
et je ne te conseille pas d'en prendre un *si tu en trouve*
Je trouve qu'il est plus simple de faire sont propre algo,
sachant que c'est ta carte que tu lui met en paramétres.
L'idée, c'est que tu a une carte sous forme de cases (tableau 2D),
et tu cherche le chemin pour aller d'un point A à un point B.
j'ai trouvé un site qui parle de ça:
http://blog.lalex.com/post/2003/09/1...-pathfinding-A
Sinon tu à une astuce tout bête,
tu rempli ton tableau de valeur décimales qui vont symboliser ce qu'il contient. La c'est toi qui choisi.
Tu peu prendre par exemple:
- Mur -> '255' (en se disant que ta carte n'est pas trop grande)
- Position Initiale -> '1' (Point A, si je reprend ce que je t'ai dit)
- cases autres -> '0'
Ensuite il ne te reste plus qu'a faire des boucles pour remplir ton tableau 2D,
en incrémentant à chaque fois la cases en cours.
Je te montre un exemple:
voila, ça peu paraitre lourd, mais t'inquiète les pc n'ont aucun soucis pour le gérer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Dim MaCarte[5][10] as interger 'exemple une carte de dimension 5*10 Dim Valeur_du_Chemin as integer = 1 While Tableau[Bx][By] = 0 'Tant que tu n'a pas trouvé le chemin jusqu'au point B 'Tu parcours tout le tableau For i as integer = 0 To 5 For j as integer = 0 To 10 ' Tu incrément les valeurs autour de "valeur_du_Chemin" ' Avec certaines conditions que je te laisse voir ;) Next Next Valeur_du_Chemin ++ 'Tu passe à la case suivante End While
L'idée c'est de balayer X fois le tableau 2D en le remplissant de manière à avoir une progression de chiffre qui montrent le nombre de mouvement à faire pour atteindre la case un partant de ton point A.
Partager