cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 27 déc. 2005 à 16:26
hmm, lgdi32 alors?
kangoo75
Messages postés47Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention28 mai 2008 27 déc. 2005 à 16:24
Erreur : cannot find -lgdi :(
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 26 déc. 2005 à 12:54
tu dois aussi mettre -lgdi il me semble.
kangoo75
Messages postés47Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention28 mai 2008 26 déc. 2005 à 12:12
Bonjour,
j'ai installé la librairie openGL ,j'ai mis dans l'éditeur de lien de dev c++ :
-lopengl32
-lglu32
-lglut32
Et j'ai l'erreur à la compilation :
undefined reference to `CreateFontA@56'
undefined reference to `SelectObject@8'
undefined reference to `SelectObject@8'
undefined reference to `DeleteObject@4'
undefined reference to `GetStockObject@4'
undefined reference to `SwapBuffers@4'
undefined reference to `ChoosePixelFormat@8'
undefined reference to `SetPixelFormat@12'
collect2: ld returned 1 exit status
make.exe: *** [Projet2.exe] Error 1
Ai je oublié quelque chose ?
Merci
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 25 déc. 2005 à 01:57
Pour l'optimisation, tout se joue au niveau de la structure de données qu'on utilise pour récupérer le prochain "noeud" (la prochaine case en fait) à traiter dans l'algorithme.
La première idée c'est de chercher la case dans toute la map à chaque itération: lent!
La seconde, c'est de mettre dans une liste chaînée toutes les cases qui sont susceptibles d'être la suivante (les modifiées en fait): bcp mieux!
La dernière (pour moi en tout cas ^^), c'est de mettre ces cases non pas dans une liste mais dans une priority queue (file à priorité): extraordinairement plus rapide! ^^
Si on imagine une map de n cases, le premier algo est en n², le second également mais dans la pratique c'est bcp bcp bcp mieux, et le troisième est en n log n, avec le n dans le log très petit, donc c'est quasiment linéaire avec le nombre de cases, c'est NOËL, noêl je vous dis ^^
cs_MATHIS49
Messages postés368Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention14 mai 20101 24 déc. 2005 à 21:15
cs_gomoz
Messages postés134Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention23 décembre 2009 11 janv. 2005 à 14:11
super, ca va mettre très utile pour piger le truc !
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 13 juil. 2004 à 10:03
ce serait pas mal de ponderer les cases: traverser du sable est plus dur que traverser du bitume, un truc de ce genre (du style coût en points de mouvement, comme dans heroes of might and magic 4 e.a.)
RaphAstronome
Messages postés104Date d'inscriptionsamedi 7 décembre 2002StatutMembreDernière intervention17 août 2009 5 juil. 2004 à 12:51
Super !!!
Sous dev-c++ ne pas oublier : -lopengl32 -lGdi32
(dans Options du Projet > Paramètres > Editeur de liens).
fser
Messages postés74Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention23 avril 2005 4 juil. 2004 à 13:09
Je met 8/10 car je trouve dommage que le chemin puisse se faire en "diagonale" : si on fait un chemin de ce genre :
__
|_|__
|_]
le "truc" peut se faufiller entre les cubes
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 4 juil. 2004 à 13:02
Il faut installer les librairies OpenGL pour compiler... On peut trouver ça sur le net...
fser
Messages postés74Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention23 avril 2005 4 juil. 2004 à 12:38
Mes compilateur ( Dev C++, Borland C++ builder ) retourne des erreurs du type :
[Linker error] undefined reference to `glColor4f@16'
ou encore
[C++ Erreur] Unit1.cpp(2): E2129 Constante caractère trop longue (ou vide)
ou [C++ Erreur] Unit1.cpp(2): E2206 Caractère '@' (0x|40) incorrect
a quoi est ce du ?
voici les erreurs retournées par visual studio :
Compiling...
main.cpp
c:\téléchargements\sources\pathfinding\main.cpp(53) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(53) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(53) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(56) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(56) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(56) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(59) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(59) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(59) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(62) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(62) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(62) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(391) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(391) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(391) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(396) : error C2374: 'a' : redefinition; multiple initialization
c:\téléchargements\sources\pathfinding\main.cpp(392) : see declaration of 'a'
c:\téléchargements\sources\pathfinding\main.cpp(446) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(459) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(461) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(463) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(465) : warning C4305: 'argument' : truncation from 'const double' to 'float'
Error executing cl.exe.
main.exe - 13 error(s), 8 warning(s)
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 4 juil. 2004 à 09:24
J'ai trouvé génial, le fait que l'on puis construire soi-même un chemin...
Et puis pareil, en 3D ce serait bien :)
10/10
Saros
lolquivole
Messages postés11Date d'inscriptiondimanche 13 juillet 2003StatutMembreDernière intervention20 juillet 2005 4 juil. 2004 à 01:07
le pathfinding en 3D est beaucoup plus complexe (plus de chemins à chercher)
Mais bon si tu reste dans le plan, ce n'est pas si dur à faire : tu transforme la carte 3d en 2d, ensuite tu exécute la fonction pour avoir le chemin, il te suffit avec une caméra qui bouge de suivre le chemin que tu as obtenu. D'ailleurs tu peux mettre des poids aux chemins:tu peux faire en sorte que monter un escalier par exemple, prenne plus de temps que d'y aller par un chemin normal.
Modéliser le monde est quand même la phase la plus difficile...
xarier
Messages postés688Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention19 mai 2005 4 juil. 2004 à 00:42
tout simplement geanial code bien claire programme tres utile mais il ya un trucs que jaurait prefairé c d'avoir ajouter une animation ca serait super :)
et aussi de faire un path finding pour 3D (avec les mur et tout) et la camera bouge pour qu'il trouve le chemin de sortie le plus court elle meme :)
5 janv. 2008 à 15:56
27 déc. 2005 à 18:55
Merci
PS : pour ceux que ça interresse, 4 articles trés bien sur le pathfinding sur : http://www.vieartificielle.com/article/index.php?action=article&id=161
27 déc. 2005 à 16:26
27 déc. 2005 à 16:24
26 déc. 2005 à 12:54
26 déc. 2005 à 12:12
j'ai installé la librairie openGL ,j'ai mis dans l'éditeur de lien de dev c++ :
-lopengl32
-lglu32
-lglut32
Et j'ai l'erreur à la compilation :
undefined reference to `CreateFontA@56'
undefined reference to `SelectObject@8'
undefined reference to `SelectObject@8'
undefined reference to `DeleteObject@4'
undefined reference to `GetStockObject@4'
undefined reference to `SwapBuffers@4'
undefined reference to `ChoosePixelFormat@8'
undefined reference to `SetPixelFormat@12'
collect2: ld returned 1 exit status
make.exe: *** [Projet2.exe] Error 1
Ai je oublié quelque chose ?
Merci
25 déc. 2005 à 01:57
La première idée c'est de chercher la case dans toute la map à chaque itération: lent!
La seconde, c'est de mettre dans une liste chaînée toutes les cases qui sont susceptibles d'être la suivante (les modifiées en fait): bcp mieux!
La dernière (pour moi en tout cas ^^), c'est de mettre ces cases non pas dans une liste mais dans une priority queue (file à priorité): extraordinairement plus rapide! ^^
Si on imagine une map de n cases, le premier algo est en n², le second également mais dans la pratique c'est bcp bcp bcp mieux, et le troisième est en n log n, avec le n dans le log très petit, donc c'est quasiment linéaire avec le nombre de cases, c'est NOËL, noêl je vous dis ^^
24 déc. 2005 à 21:15
Commentaires : 9/10
Ergonomie : 10/10
Que dire de plus ? A quand l'optimisation? :)
11 janv. 2005 à 14:11
13 juil. 2004 à 10:03
5 juil. 2004 à 12:51
Sous dev-c++ ne pas oublier : -lopengl32 -lGdi32
(dans Options du Projet > Paramètres > Editeur de liens).
4 juil. 2004 à 13:09
__
|_|__
|_]
le "truc" peut se faufiller entre les cubes
4 juil. 2004 à 13:02
4 juil. 2004 à 12:38
[Linker error] undefined reference to `glColor4f@16'
ou encore
[C++ Erreur] Unit1.cpp(2): E2129 Constante caractère trop longue (ou vide)
ou [C++ Erreur] Unit1.cpp(2): E2206 Caractère '@' (0x|40) incorrect
a quoi est ce du ?
voici les erreurs retournées par visual studio :
Compiling...
main.cpp
c:\téléchargements\sources\pathfinding\main.cpp(53) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(53) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(53) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(56) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(56) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(56) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(59) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(59) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(59) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(62) : error C2059: syntax error : '}'
c:\téléchargements\sources\pathfinding\main.cpp(62) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(62) : error C2143: syntax error : missing ';' before '}'
c:\téléchargements\sources\pathfinding\main.cpp(391) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(391) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(391) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(396) : error C2374: 'a' : redefinition; multiple initialization
c:\téléchargements\sources\pathfinding\main.cpp(392) : see declaration of 'a'
c:\téléchargements\sources\pathfinding\main.cpp(446) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(459) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(461) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(463) : warning C4305: 'argument' : truncation from 'const double' to 'float'
c:\téléchargements\sources\pathfinding\main.cpp(465) : warning C4305: 'argument' : truncation from 'const double' to 'float'
Error executing cl.exe.
main.exe - 13 error(s), 8 warning(s)
4 juil. 2004 à 09:24
Et puis pareil, en 3D ce serait bien :)
10/10
Saros
4 juil. 2004 à 01:07
Mais bon si tu reste dans le plan, ce n'est pas si dur à faire : tu transforme la carte 3d en 2d, ensuite tu exécute la fonction pour avoir le chemin, il te suffit avec une caméra qui bouge de suivre le chemin que tu as obtenu. D'ailleurs tu peux mettre des poids aux chemins:tu peux faire en sorte que monter un escalier par exemple, prenne plus de temps que d'y aller par un chemin normal.
Modéliser le monde est quand même la phase la plus difficile...
4 juil. 2004 à 00:42
et aussi de faire un path finding pour 3D (avec les mur et tout) et la camera bouge pour qu'il trouve le chemin de sortie le plus court elle meme :)
MAIS fronchement BRAVO !!!!