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
Le jeu se joue de la façon suivante :
Les actions et valeurs de cartes suivantes sont données à titre d'exemple :
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 :
Dans le cadre des variantes, il est également possible de compter les points à la fin du jeu.
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.
Chaque projet devra intégrer deux des objectifs suivants :
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.
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.
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é.
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.
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.
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.