Ce diagramme de classes UML présente une partie des classes utilisées
par l'algorithme de recherche. La classe racine "CcaseNB"
contient toutes les méthodes. Les classes dérivées de l'arbre d'héritage
spécialisent entre 2 et 4 méthodes. Les 2 méthodes toujours spécialisées
sont IsFree() et GetSource(). Toutes les classes ne sont pas représentées sur ce
diagramme. En effet, pour la recherche de carré semi-magique, 4 familles de
classes sont créées représentant des cases appartenant à chaque quart de
l'échiquier. La case externe de l'échiquier contenue dans chaque quart est
utilisée pour repérer le quart (A1 en bas a gauche, H1 en bas à droite, A8 en
haut à gauche et H8 en haut à droite). Seules les cases dérivées du quart A1
sont représentées sur le diagramme.
La complexité du diagramme vient de plusieurs faits. D'une part, 9
cas sont traités par l'algorithme :
- les carrés semi-magiques, magiques ou quelconques
- les diagonales semi-magiques, magiques ou quelconques.
Il est possible par exemple de rechercher des carrés quelconques avec
diagonales semi-magiques. Les cases sur les diagonales ou sur les diagonales de
chaque quart d'échiquier sont associées à plusieurs classes en fonction du
type de chemin recherché, même s'il n'existe aucune contraintes sur les
diagonales.
D'autre part, l'algorithme supporte 2 modes d'exécution. Un mode standard et
un mode optimisé. Dans le mode standard, des traces sont enregistrées pour
analyser en temps réel les caractéristiques de la recherche. Ces traces
disparaissent en mode optimisé.
Les classes qui doivent être utilisées par l'algorithme en fonction du type
de recherche sont décrites dans ces tableaux.
|