Bonjour,
J'ai écris un programme C générant un labyrinthe de manière aléatoire avant d'en trouver la sortie à l'aide de l'algorithme A*, le tout étant illustré graphiquement grâce à la bibliothèque SDL.
Dans un premier temps je ne me suis pas embêter à gérer les interactions utilisateurs donc il est impossible de fermer le programme classiquement en cliquant sur la croix tant que l'algorithme A* n'est pas terminé, ce qui peut être long sur de gros labyrinthes. Une fois le chemin trouvé le programme se met en pause avec le classique SDL_WaitEvent en attendant la fermeture.
J'ai voulu y remédier (l'utilisateur doit pouvoir quitter à tout moment le programme) et pour faire cela j'ai utilisé un thread qui prend en charge l'application de l'algorithme A*, le processus principal étant simplement la boucle d'attente des événements. J'ai bien évidement géré la synchronisation afin qu'on ne continue pas à vouloir afficher des choses sur l'écran alors que le programme doit se fermer etc.
Tout marche bien mais comme j'ai un peu fais ça au feeling je me demandais si c'était la bonne manière de faire, ou pas ?
Si il existe d'autres méthodes, quels sont leurs avantages et inconvénients comparé à la mienne ?
Merci d'avance pour vos réponses.
Partager