Forum de la communauté SFML
Aide => Général => Discussion démarrée par: titouan le Octobre 09, 2013, 08:00:19 pm
-
Bonsoir ! je squatte un peu le forum en ce moment et je m'en excuse .
J'ai un projet à réaliser et je me pose donc la question de comment vais-je modéliser tout ca . En gros mon projet est tout simplement de résoudre le problème du voyageur de commerce avec l'algorithme génétique et je dois donc créer une interface graphique pour suivre l'évolution de l'algorithme . Je me disait donc que créer une windows dans le main et gérer les window.clear(), draw et autre dans les fonctions de l'algorithme ca ne me semble pas évident.
Je me suis donc proposé à moi même la solution suivante : 2 threads
Principal ( main ) : Gestion de la fenêtre
Secondaire ( l'algorithme et la résolution du problème)
De cette façon, il est simple de gérer la fenêtre, et d'attendre par exemple l'exécution du thread d'algo pour afficher les résultats . Je me trompe peut être totalement ! mais j'ai du mal à comprendre comment implémenter la SFML dans un tel petit projet ...
Cordialement !
-
J'ai pas vraiment compris quel était ton problème précisément.
Si tu ne veux pas bloquer l'affichage des résultats pendant que l'algorithme tourne, alors oui il te faut un thread dédié pour les calculs.
-
C'est bien se que je me disais . Ou alors il faudrait que l'algorithme soit suffisamment rapide pour qu'on ne ressente aucune gène .
Merci
-
Je m'explique plus clairement . J'ai un algorithme qui vas retourner un objet de type population ( crée par mes soins ). Mon but est que la fenêtre affiche un graph en fonction de cette population a chaque fois que l'algorithme retourne quelque chose ( la population diminue de taille au fur et à mesure des itérations ).
En fait je ne sais pas comment gérer la fenêtre en même temps que cet algo . Je n'aime pas trop l'idée de faire un thread, je préférerais tout fait dans le principal.. Mais j'ai en fait du mal à comprendre comment ca fonctionne dans ce cas, car je trouve ca très contraignant ? Si ma fenêtre est déclaré dans le main, je devrais créer une fenêtre, la faire passer à ma fonction Start(), dans cette fonction avoir une While(is.open()) qui appel l'algo, et pour gérer quand même les événements pendant l'algo je devrais aussi lui faire passer la fenêtre et placer un while(is.open()) ...
Je suis dans le flou c'est bizare en fait ^
Merci !