Available nodes

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.
Pour les besoins du projet, il est possible d'extraire les images des tuiles à partir des fichiers de règles donnés en référence, en utilisant la commande 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.
Recommandations : Le fichier suivant contient une liste de recommandations explicites pour la réalisation de la partie algorithmique du projet. En particulier, vos propos seront illustrés d'exemples dessinés et commentés. Le rapport sera rédigé à l'aide de 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).