C++ (ActiveX)

Accueil Remonter

Version 4. Contrôle ActiveX en utilisant les MFC.

Cette nouvelle version du programme, écrite en C++, respecte l'architecture d'un contrôle ActiveX. Ce programme peut alors être intégré dans une page Web et exécuté interactivement. L'interface utilisateur est semblable à celle réalisée en VB6, avec certaines améliorations notables liées à l'utilisation du multi-thread. 

Utilisation des threads

Elle utilise les threads Win32. Tous les traitements longs, c'est à dire dont la durée est supérieure à quelques secondes, sont traités dans des threads indépendants. La recherche d'une solution, déclenchée par l'appui sur le bouton START, ou l'affichage du chemin trouvé dans l'ordre de progression, déclenché par l'appui sur le bouton PROGRESS, sont les deux traitements concernés.

Grâce à ce mécanisme, de nouvelles fonctionnalités peuvent être proposées :

  1. L'interface utilisateur est toujours disponible, même pendant la recherche d'un chemin ou l'affichage de la progression. Ainsi, il est possible de modifier dynamiquement le caractère temps réel de l'affichage lors de la recherche (case à cocher TRDisplay). La case F2 est celle qui nécessite le temps de calcul le plus long. (remarque : aucune symétrie n'est utilisée dans la programmation de ce problème. La recherche d'une solution pour les cases appartenant à la moitié du quart de l'échiquier (10 cases au total) permettrait par symétrie, d'obtenir une solution pour toutes les cases de l'échiquier.

  2.  Pour la même raison, l'accès aux fonctions du navigateur n'est plus bloqué pendant l'exécution du programme.

  3. Le programme gère alors simplement les possibilités d'appuis multiples. Lorsqu'une solution (un chemin) est en cours de recherche, il n'est pas possible par exemple d'afficher une progression. De même, l'appui sur une des cases de l'échiquier n'a aucun effet. L'appui sur le bouton RESET provoque l'affichage d'une boite de dialogue indiquant qu'une recherche est en cours.

  4. La gestion de la progression est un peu plus sophistiquée. Le premier appui sur le bouton PROGRESS, une fois qu'une solution a été trouvée, lance l'affichage progressif du chemin. Une pause d'un seconde est introduite entre chacune des cases affichées. Chaque case contient son index de déplacement. Pendant l'affichage de cette progression, un nouvel appui sur PROGRESS diminue le temps de pause entre l'affichage de chaque case par 2. Au bout du cinquième appui, le chemin est indiqué dans sa totalité.

 

Version  utilisant les threads Win32