Le jeu Carcassonne est un jeu de société dans lequel les joueurs marquent des points en construisant des édifices (routes, châteaux, monastères ...), l'objectf étant d'optimiser ses possibilités en fonction des cartes que l'on reçoit, de terminer ses propres constructions voire même de chiper celles de ses voisins. Ce projet propose de modéliser les règles du jeu Carcassonne et de mettre en place l'architecture nécessaire pour visualiser le plateau de jeu, analyser les coups possibles, évaluer les scores et à terme jouer contre un adversaire humain ou possiblement informatique.
Les règles du jeu sont disponibles en anglais et en français. Il existe un document relativement long qui détaille toutes les règles du jeu
Tâches à réaliser
- Proposer une modélisation des tuiles et du tableau de jeu faisant intervenir naturellement la notion de graphe (l'auteur propose qu'on puisse jouer à ce jeu sur autre chose qu'un plan, par exemple un cylindre, un tore ou un disque hyperbolique).
- Compléter la modélisation afin de représenter tous les aspects du jeu.
- Construire une fonction permettant de visualiser un plateau de jeu. La technique de visualisation est laissée libre, elle peut se faire en mode texte, en utilisant la bibliothèque ncurses, une sortie LaTeX ou encore la bibliothèque SDL.
- Écrire les fonctions permettant de vérifier qu'une tuile peut être placée à un endroit du plateau de jeu, et permettant de vérifier qu'un plateau de jeu entier est valide.
- Écrire les fonctions permettant de calculer et d'afficher les scores des joueurs à un moment donné d'une partie.
- Mettre en place la technique nécessaire pour pouvoir jouer à Carcassonne avec deux joueurs humains. Puis avec deux joueurs pilotés par l'ordinateur.
pdfimages, ou d'utiliser
d'autres fichiers images pour les tuiles. Cela laisse alors la
possibilité de représenter de manière graphique le plateau de jeu.
Latex. Les dessins pourront être réalisés à
l'aide de bibliothèques pour LaTeX
(comme pstricks ou tikz), ou de
logiciels de dessin (comme xfig).