Projet ASTS Java : Le 421

Transcription

Projet ASTS Java : Le 421
Projet ASTS Java : Le 421
C. Pierkot
Année 2007 - 2008
On veut jouer au 421 dans un premier temps contre l'ordinateur, puis contre un autre joueur.
Le 421 se joue avec trois des. Le but du jeu comme son nom l'indique est d'essayer de faire
421 en trois lancers.
Si 421 n'a pas ete accompli, on compte alors les points en fonction de la combinaison obtenue.
Parmi les combinaisons, on peut avoir :
• Le 421 : 10 points
• Un brelan : 3 chiffres identiques.
o Brelan de 1 : 7 points
o Brelan de 6 : 6 points
o Brelan de 5 : 5 points
o Brelan de 4 : 4 points
o Brelan de 3 : 3 points
o Brelan de 2 : 2 points
• Une paire : 2 as accompagnés d'un chiffre quelconque
o 611 : 6 points
o 511 : 5 points
o 411 : 4 points
o 311 : 3 points
o 211 : 2 points
• Une suite : 3 chiffres qui se suivent : 2 points
• Toutes les autres combinaisons valent 1 point.
Premiere partie : Jeu contre l'ordinateur
Dans la première partie, on initialise plusieurs combinaisons par défaut pour l'ordinateur
qu'on joue aleatoirement a chaque partie et le jeu s'arrete lorsqu'un des joueurs arrive a 50
points.
Lorsque c'est à l'utilisateur de jouer, il jette les dés et choisit ceux qu'il garde et ceux qu'il
décide de rejouer. (maximum trois fois)
La combinaison finale et le nombre de point gagnés pour la manche s'affiche à la fin des trois
lancers (ou des que le joueur decide qu'il a obtenu un score suffisant ).
Lorsque les deux joueurs ont lancés leurs dés, le jeu annonce le gagnant de la manche et un
recapitulatif des points de chacun est affiché a l'ecran.
Question 1 : Analyser le problème et proposer une solution qui utilise le mécanisme
d'heritage.
Question 2 : Modéliser votre solution en UML
Question 3 : Proposer un jeu de test permettant de valider votre solution
Question 4 : Ecrire en pseudo code les méthodes nécessaires au bon déroulement du jeu
Question 5 : Implementer votre programme en Java. N'oubliez pas de gérer les exceptions
ainsi que l'affichage du jeu.
Question 6 : Réviser votre programme initial afin de supprimer les erreurs d'exécution
Question 7 : Générer la documentation et écrire le rapport technique.
Deuxième partie : Jeu mono ou multi-joueur
Améliorer votre système afin
• De permettre à l'utilisateur de choisir s'il veut jouer contre un autre joueur ou contre
l'ordinateur
• De permettre au joueur de choisir quand le jeu doit s'arreter (nombre de point ou
nombre de manche). Dans ce cas, c'est l'utilisateur qui décide combien de point (ou de
manche) il devra faire avant la fin du jeu.
Troisième partie : Jeu contre l'ordinateur
On veut dans cette partie essayer de créer un système où l'utilisateur peut jouer réellement
contre l'ordinateur. Il faut pour cela que l'ordinateur soit capable de selectionner les des qu'il
veut garder et ceux qu'il veut rejouer afin d'obtenir au final la meilleure combinaison possible.
Mais pour cela, il faut decrire explicitement au logiciel les situations qu'il peut rencontrer et
les resultats attendus.
On va donc définir ce qu'on appelle des heuristiques. Une heuristique est une méthode
approximative qui trouve une solution optimale pour un problème donné.
Les heuristiques s'etablissent en fonction des combinaisons finales et des points que chaque
combinaison rapporte si elle est jouée. Par exemple, si dans le premier lancer, l'ordinateur
obtient 4 2 6, il faut par exemple lui dire de rejouer le 6 afin de tenter d'obtenir un 1. Mais si
l'ordinateur obtient un 443, alors est il preferable de lancer le 3 pour tenter d'obtenir un brelan
de 4 ou de lancer le 4 et le 3 pour obtenir une chance d'avoir le 421… A vous de voir mais
meilleure sera votre heuristique, plus difficile l'ordinateur sera a battre ;-)