Florentin Noguès
Le programme est structuré d'un fichier main
contenant la fonction main
. Cette fonction possède une boucle while
permettant de vérifier les instructions donnés par l'un des joueurs sur l'entrée standard. Dans le cas où un coup est joué, le jeu va tout d'abord vérifier si la pièce est en capacité de se mouvoir sachant qu'elle ne doit pas mettre ou laisser le roi en échec tout en respectant ses règles de déplacement. Une fois le coup joué, le programme vérifie si l'adversaire est en échec et mat ou non. Le cas échéant, la boucle se stoppe en affichant la position canonique ainsi que le résultat.
La difficulté du programme réside surtout sur comment implémenter proprement le code. Je n'ai eu que très peu de moment où je devais réfléchir sur l'aspect algorithmique de la chose. Cependant, savoir comment les classes s'imbriquaient entre elle tout en évitant au maximum les répétitions n'a pas été une tache aisée. Mes plus gros moments de "frustration" ont été l'apparition de dépendance cyclique qui devaient être prise en compte dans la conception du programme. Je n'avais jamais rencontré ce type de problème auparavant en développant en C# ou en Java.
La documentation est disponible dans doxygen/html/index.html
.