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 ;-)