Table of Contents

Projet pour le module de Génie Logiciel et Gestion de Projet - Cuvée 2015

Le Huit Américain

Présentation du jeu

Le Huit Américain est un jeu de carte traditionnelle dans lequel chaque carte peut avoir un effet sur le déroulement du jeu. Le jeu a été popularisé grâce à sa version commerciale : le Uno.

Vous pouvez trouver tous les détails du jeu sur la page wikipédia du jeu : https://fr.wikipedia.org/wiki/8_am%C3%A9ricain

Principes du jeu

Le jeu se joue de la façon suivante :

  1. En début de partie chaque joueur reçoit 8 cartes et la première carte de la pioche est retournée
  2. Les joueurs déposent une carte tour à tour en suivant soit la couleur, soit le nombre ou en suivant une des règles des cartes spéciales (voir plus bas)
  3. Si un joueur ne peut pas jouer il pioche une ou plusieurs cartes (voir plus bas)
  4. Si un joueur n'a plus qu'une carte il doit l'annoncer (en prononçant un mot ou en émettant un signal), s'il ne l'a pas fait et qu'un joueur s'en aperçoit, le premier joueur pioche
  5. Lorsqu'un joueur pose sa dernière carte il a gagné

Actions des cartes et variantes de jeu

Les actions et valeurs de cartes suivantes sont données à titre d'exemple :

  1. Annonce de la couleur à venir : lors de la pose d'un 8
  2. Permet de rejouer : lors de la pose d'un 10
  3. Faire passer son tour au joueur suivant : lors de la pose d'un 7
  4. Changer le sens du jeu : lors de la pose d'un valet

D'autres actions sont possibles pour (par exemple) faire piocher un joueur, annoncer une valeur de carte à jouer, faire piocher tous les joueurs, etc.

De même que de nombreuses actions sont imaginables, des variantes existent sur le nombre de cartes dans le jeu (32 ou 54 cartes, avec ou sans joker), ainsi que sur les modalités de piochage :

  1. le joueur qui ne peut pas jouer doit piocher jusqu'à ce qu'il puisse jouer
  2. le joueur pioche N cartes maximum avant de passer son tour

Dans le cadre des variantes, il est également possible de compter les points à la fin du jeu.

Implémentation et Objectifs

Le projet consiste à implémenter une version du 8 américain. Chaque projet devra intégrer un moteur de jeu minimum permettant de jouer à 2 avec un jeu de 32 cartes et disposant au minimum de 2 types d'actions. Le moteur de jeu devra être réalisé en Java et devra offrir une interface Web minimale pour pouvoir jouer, même si l'interface proposée est en version console.

Objectifs

Chaque projet devra intégrer deux des objectifs suivants :

  1. Réalisation d'une IA
  2. Possibilité de jouer en réseau
  3. Application web ou application mobile avec interface graphique pour jouer
  4. Création d'un moteur de règles
  5. Comptage des points et traitement et affichage de statistiques sur le jeu
  6. Sauvegarde, importation et relance de parties déjà jouées

Réalisation d'une IA

Il s'agit de réaliser une intelligence artificielle pour le moteur de jeu. Attention, cette intelligence artificielle doit nécessairement avoir un comportement non-aléatoire.

Il est demandé d'implémenter plusieurs IA définissant différentes stratégies de jeu et de pouvoir comparer les résultats des différentes IA.

Possibilité de jouer en réseau

Il s'agit ici de définir et implémenter tous les éléments nécessaires à un jeu en réseau : mécanismes pour la création d'une partie, pour rejoindre une partie, pour récupérer des informations sur les joueurs, pour annoncer le vainqueur, pour gérer les problèmes possibles de réseau etc.

Application web ou application mobile avec interface graphique pour jouer

Il s'agit ici de réaliser une application web ou mobile complète capable de s'interfacer avec le moteur de jeu afin de proposer une expérience complète de jeu. Il est indispensable cependant que le jeu reste jouable en dehors de toute interface, uniquement via le service REST réalisé.

Création d'un moteur de règles

Comme vous avez pu le lire, le 8 américain dispose de quantité de variantes (voir https://fr.wikipedia.org/wiki/8_am%C3%A9ricain#Variantes) Il est même possible d'inventer ses propres variantes du jeu.

Il vous est demandé de créer des mécanismes de personnalisation du jeu afin de pouvoir intégrer des variantes souhaitées et de créer ses propres variantes. Il est nécessaire cependant de vérifier que le jeu reste jouable avec les variantes réalisées.

Comptage de points et affichage de statistiques sur le jeu

Différents mécanismes de comptage de points sont possibles pour ce jeu (voir https://fr.wikipedia.org/wiki/8_am%C3%A9ricain#Points)

Il vous est demandé de réaliser différents mécanismes de comptages ainsi que le choix de ses mécanismes, ainsi que la possibilité pour le joueur de définir un nouveau type de comptage de point. Il vous est également demandé d'agréger des statistiques sur les parties jouées (temps de jeu, nombre de participants, scores, nombres de cartes piochées, nombre de cartes rejetées, nombre de pioches créées, etc) et de définir des mécanismes de visualisations de ses statistiques, ainsi que des formats d'exportation des données.

Sauvegarde, importation et relance de parties déjà jouées

Il vous est demandé de réaliser un mécanisme permettant de sauvegarder une partie, de l'exporter dans différents formats et un mécanisme permettant la réimportation d'une partie. Il vous est également demandé de permettre de relancer une partie, soit automatiquement comme un “replay”, soit pas à pas, ou encore intervenir pour faire un autre choix à une étape du jeu et peut être obtenir une fin différente.