J'ai fait un path finding A* pour ceux que ça interresse.
-->Télécharger<--
Tout n'est pas terminé mais c'est déjà fonctionnel.
NOTA : ne cherchez pas des performances fulgurantes sur vos TI!
EDIT : mise à jour du lien
Vertyos :
Hum... Ça s'utilise comment ? J'ai du ouvrir la source pour comprendre qu'il fallait 4 ou 6 entiers en paramètre, déjà, et j'ai pas vu l'ombre d'une map donc c'est pas spécialement impressionant :/
#ifndef USE_3D_NODES int PATH_isGoodWay(int X, int Y) #else int PATH_isGoodWay(int X, int Y, int Z) #endif { #ifndef USE_3D_NODES #else #endif }
#ifndef USE_3D_NODES int PATH_isGoodWay(int X, int Y) #else int PATH_isGoodWay(int X, int Y, int Z) #endif { #ifndef USE_3D_NODES if (Y < 0 || Y > 5 || X < 0 || X > 7) return FALSE; if (X == 4 && (Y == 1 || Y == 2 || Y == 3)) return FALSE; return TRUE; #else #endif }
#ifndef USE_3D_NODES int PATH_isGoodWay(int X, int Y) #else int PATH_isGoodWay(int X, int Y, int Z) #endif { #ifndef USE_3D_NODES if (Y < 0 || Y >= ligne || X < 0 || X >= colonne) return FALSE; return ma_matrice[Y*colonne + X]; #else #endif }
Miles :
Ca veut dire que tu ne peux pas dynamiquement changer de carte, ce qui est ton cas, donc c'est une carte codée en dur.
Ensuite, est-ce que tu as la possibilité de mettre une pénalité de mouvement sur ta carte ? C'est une utilisation avec des cases carrées ?
Miles :
Ca veut dire que tu ne peux pas dynamiquement changer de carte, ce qui est ton cas, donc c'est une carte codée en dur.
Ensuite, est-ce que tu as la possibilité de mettre une pénalité de mouvement sur ta carte ? C'est une utilisation avec des cases carrées ?
IroS :
Pour ce qui est de la pénalité, c'est prévu. Enfin si tu entends pénalité un changement de type de terrain par exemple (avancer sur un chemin != avancer sur du sable ou un marécage)
typedef struct { unsigned long Xs,Ys; unsigned long Xe,Ye; unsigned int *map; unsigned long width; unsigned long height; #ifdef USE_3D_NODES unsigned long Zs,Ze; unsigned long deep; #endif unsigned int make_full_path, search_mode, use_hv_move_only; unsigned long node_number; NODE** list; NODE* end_node; }PATH;