Projet de POCA — Le Roi Des Jeux
Universit´ e Paris Diderot – Master 2 SRI/LC/LP 7 novembre 2011
1 Principe du projet
Le projet de POCA vise ` a vous faire progresser dans votre capacit´ e ` a conce- voir un syst` eme objet extensible.
Il se d´ eroule en deux ´ etapes. Dans la premi` ere ´ etape, un sujet vous est fourni.
Ce sujet est volontairement d´ ecrit de fa¸ con informelle, sans vous donner d’in- dication pour le r´ ealiser. Vous devez donc d´ efinir vous-mˆ eme une architecture pour votre projet et vous la d´ ecrirez dans le d´ elivrable 1.
Une impl´ ementation ´ ecrite en Scala de cette premi` ere version constitue le d´ elivrable 2.
Vous recevrez ensuite un autre sujet qui est une extension du premier. Cette extension sera objet du d´ elivrable 3 (plus de d´ etails seront fournis avec le deuxi` eme sujet) et mettra ` a l’´ epreuve votre architecture initiale : un projet bien pens´ e n’aura pas besoin de modifier le code de la premi` ere version du projet pour traiter cette extension mais seulement de rajouter de nouveaux composants.
2 Sujet
Le projet consiste en la r´ ealisation d’un moteur de jeu d’´ echecs (connu aussi comme “le roi des jeux”).
Un moteur de jeu d’´ echecs est une biblioth` eque logicielle qui permet d’impl´ ementer avec facilit´ e des logiciels de jeux d’´ echecs. Au minimum, un mo- teur de jeux d’´ echecs doit contenir une repr´ esentation du plateau de jeux et de la position de jeu courante, un g´ en´ erateur des coups (i.e. tous les coups l´ egaux pour un des deux joueurs, selon les r` egles du jeu, ` a partir d’une position du jeu), et la capacit´ e ` a d´ eterminer l’issue du jeu (´ echec et mat ou pat). Un moteur de jeu d’´ echecs doit impl´ ementer tr` es fid` element les r` egles du jeu d’´ echecs.
1Un moteur de jeu d’´ echecs ne contient pas une interface graphique pour jouer aux ´ echecs ! L’impl´ ementation de cela est laiss´ ee aux utilisateurs de la bi- blioth` eque. Par contre, pour faciliter le d´ ebogage, beaucoup des moteurs de jeu d’´ echecs utilisent le protocole Chess Engine Communication Protocol (CECP).
21. voir par exemplehttp://fr.wikipedia.org/wiki/Regles_du_jeu_d’echecs 2. http://www.gnu.org/software/xboard/engine-intf.html
1
Il est recommand´ e que votre moteur traite au moins un sous-ensemble de ce pro- tocole, suffisant pour utiliser comme interface graphique externe une parmi les plusieurs interfaces d´ ej` a existantes qui impl´ ementent CECB. Voir par exemple XBoard/Winboard.
3Un moteur de jeu d’´ echecs doit permettre d’impl´ ementer des logiciels de jeu d’´ echecs entre joueurs ` a la fois humains et dirig´ es par une intelligence artificielle.
La strat´ egie de jeux pour les intelligences artificielles est d´ el´ egu´ ee aux utilisa- teurs de la biblioth` eque, mais cela doit permettre l’acc` es ` a l’´ etat du jeu et aux historiques de coups d´ ej` a effectu´ es.
3 Travail demand´ e
L’utilisation du SVN est obligatoire. L’historique de ce dernier permettra de d´ eterminer la contribution des membres de l’´ equipe et la gestion du temps dont vous avez fait preuve.
Avant le 21 novembre 2011 Dans un r´ epertoire delivrables/architecture/
de votre SVN, vous devez nous soumettre une architecture sous la forme d’un ou plusieurs diagrammes de classes UML et d’autres diagrammes de votre choix accompagn´ es d’explications justifiant vos choix.
Ce document sera fourni au format PDF et pourra suivre le plan suivant : Interpr´ etation du sujet Vous expliquerez de fa¸ con informelle ce que vous
avez compris du sujet et de ces enjeux. Quels sont les probl` emes techniques et conceptuels que vous avez exhib´ es ?
Concepts Dans cette section, vous d´ efinirez les concepts utilis´ es pour mod´ eliser le probl` eme ainsi que les invariants essentiels du syst` eme.
Description de l’architecture Vous donnerez ici les diagrammes UML d´ ecrivant votre architecture et surtout sa justification.
Extensions envisag´ ees Vous ´ enum´ erez ici les g´ en´ eralisations et les extensions que vous avez imagin´ ees et vous expliquerez pourquoi votre architecture permet de les traiter facilement.
Avant le 12 d´ ecembre 2011 Dans un r´ epertoire delivrables/version1/
de votre SVN, vous devez soumettre une premi` ere version de votre syst` eme.
Celui-ci doit ´ evidemment compil´ e ` a l’aide d’une commande make effectu´ ee
`
a la racine de ce r´ epertoire. Un fichier README doit ˆ etre fourni aussi et doit expliquer comment ex´ ecuter votre syst` eme expliquant, le cas ´ ech´ eant, comment l’utiliser avec des logiciels externes (p.ex. xboard).
Votre projet doit aussi ˆ etre test´ e. La qualit´ e du code—c’est-` a-dire sa correc- tion, sa robustesse et son ´ el´ egance—sera prise en compte dans la notation.
3. http://www.gnu.org/software/xboard/