Rapport du projet : Jeu de Belote
Transcription
Rapport du projet : Jeu de Belote
2010 Rapport du projet : Jeu de Belote UFR ST – Licence 2 Programmation Orienté Objet 2010/2011 3 semestre ème Programmation Orienté Objet Rapport du Projet « JEU DE BELOTE » Abbas AHMAD & Matin BAYRAMOV Group TP C Professeur encadrant : M. Pierre Alain Masson Abbas AHMAD& Matin BAYRAMOV Page 1 Rapport du projet : Jeu de Belote Abbas AHMAD& Matin BAYRAMOV 2010 Page 2 2010 Rapport du projet : Jeu de Belote Sommaire Introduction I. Présentation du jeu de Belote II. Conception III.Diagramme de classe Conclusion Abbas AHMAD& Matin BAYRAMOV Page 3 Rapport du projet : Jeu de Belote 2010 Introduction Le but de ce projet consiste à programmer une version simplifié du Jeu de Belote. Après avoir appris la programmation objet orienté, ce projet devrait nous faire pratiquer l’objet en Java. Contrairement à l’année dernière cette fois nous étions obligé de programmer le jeu en objet. Nous avons détaillés les caractéristiques du jeu et les règles dans les parties suivantes. Ensuite nous avons montrés une vue objet de ce jeu. Abbas AHMAD& Matin BAYRAMOV Page 4 2010 Rapport du projet : Jeu de Belote I. Présentation du jeu de Belote Le jeu Ce jeu est un jeu de cartes qui se joue à quatre avec un paquet de 32 cartes comprenant 4 bois (Pique, Cœur, Carreau et Trèfle) et 8 valeurs. Un de ces quatre joueurs est un joueur humain, les trois autres joueurs se font jouée par l’ordinateur. Pique Cœur Carreau Trèfle Les cartes Une carte a un bois, une valeur et un nombre de points. Exemple : La valeur d’une carte dépend de si elle est atout ou pas. Au première tour le joueur humain choisit l’un des bois pour être l’atout de la partie. Si des cartes ne sont pas des atouts, alors ces valeurs de la plus forte à la moins forte sont: Hors atout : As – Dix – Roi – Dame – Valet – Neuf – Huit – Sept. Si elles sont des atouts, l’ordre change comme suit : toujours de la plus forte à la moins forte. A l’atout : Valet – Neuf – As – Dix – Roi – Dame – Huit – Sept. Abbas AHMAD& Matin BAYRAMOV Page 5 2010 Rapport du projet : Jeu de Belote Les règles Une fois que l’atout choisi, le joueur humain commence à jouer sa première carte. Ici il n’est pas obligé de jouer un atout, il peut jouer n’importe quelle carte qu’il souhaite. On appellera le pli la collection de quatre cartes qui seront sur la table. Ensuite aux tours des autres joueurs, chaque joueur devrait jouer une carte du même bois que celle de la première carte du pli. Si un joueur n’en a pas, il sera obligé de jouer une carte atout. S’il n’a pas d’atout non plus, alors il est autorisé de jouer une carte quelconque. Quand chaque jouer à jouer une carte, on dit le pli est terminé et il est remporté par celui qui a joué la plus forte carte. S’il y des cartes atouts, alors la carte la plus forte sera l’atout plus fort, en respectant l’ordre que nous avons présentée au-dessus. S’il n’y a pas d’atout, la carte la plus forte est celle qui est la plus forte dans le bois de la première carte du pli. Celui qui vient de remporter le pli commence le pli suivant. Les équipes Les joueurs forment deux équipes de deux. Les joueurs 1 et 3 forment première équipe, et les joueurs 2 et 4 forment deuxième équipe. A la fin de la partie, chaque équipe compte ses points en additionnant les points des cartes qu’elle a gagnées. L’équipe qui a remporté le dernier pli a droit à 10 points supplémentaires. L’équipe qui a plus de points au total remporte la partie. Les points Les points des cartes hors atout : Carte As Dix Roi Points 11 10 4 Dame 3 Valet 2 Neuf 0 Huit 0 Sept 0 Les points des cartes à l’atout : Carte Points Valet 20 Neuf 14 Abbas AHMAD& Matin BAYRAMOV As 11 Dix 10 Roi 4 Dame 3 Huit 0 Sept 0 Page 6 2010 Rapport du projet : Jeu de Belote Début du jeu Au début du jeu nous affichons les cartes du jeu de belote aux joueurs. On distribue les cartes puis on lui affiche sa main. Ensuite on lui demande de saisir l’atout. k Abbas AHMAD& Matin BAYRAMOV Page 7 Rapport du projet : Jeu de Belote 2010 Apres avoir saisie l’atout on présente au joueur les cartes de sa main en mettant une étoile devant les cartes atouts, nous demandons ensuite au joueur de saisir la carte qu’il souhaite jouer. Lorsque le joueur saisi la carte, on affiche les cartes jouées (le pli), on lui dit qui remporte la main. Ensuite on lui affiche les cartes qu’il lui reste dans la main. On annonce le tour de joueur, s’il ne commence pas en premier, on lui affiche les cartes jouées avant lui et on lui demande de jouer. Abbas AHMAD& Matin BAYRAMOV Page 8 2010 Rapport du projet : Jeu de Belote Fin du jeu A la fin du pli numéro 8 (les joueurs ont joué tous leurs cartes), on affiche qui a gagné le dernier pli, car son équipe remporte dix points supplémentaires. On annonce l’équipe gagnant et les points des deux équipes. Finalement nous demandons au joueur s’il veut rejouer. D Abbas AHMAD& Matin BAYRAMOV Page 9 2010 Rapport du projet : Jeu de Belote II. Conception Il est demandé de programmer le jeu en programmation orienté objet de Java. Nous avons caractérisé une carte par son bois, sa valeur et le nombre de points. Dans ce cas une carte belote est toujours une carte sauf qu’elle a des propriétés différentes. Cela dit en fait une carte belote est une sorte de carte. Pour présenter les cartes du jeu, les cartes qui seront dans les mains des joueurs, les cartes dans le pli et les cartes qui seront ramassées par les joueurs, nous avons utilisé des listes. Bien entendu nous avons respectés les indications qui sont été données dans le sujet. CollectionCartes JeuBelote MainBelote PliBelote CarteRamasser Les listes sont de type CarteBelote. Carte CarteBelote Une carte belote est une sorte de carte. Abbas AHMAD& Matin BAYRAMOV Page 10 Rapport du projet : Jeu de Belote 2010 Les exceptions Nous avons fait des exceptions pour vérifier les saisies d’utilisateur. Au cas où la saisie n’est pas bonne pour que le programme ne se plante pas, on lui oblige de saisir la bonne demande. Exemples, pour un utilisateur qui ne saisit pas bien : Exemple d’exception Nous avons créé plusieurs exceptions pour les saisies d’utilisateur (voir diagramme de classe). Abbas AHMAD& Matin BAYRAMOV Page 11 Rapport du projet : Jeu de Belote 2010 Exception sur la saisie d'un atout Abbas AHMAD& Matin BAYRAMOV Page 12 2010 Rapport du projet : Jeu de Belote III. Diagramme de class Carte pri vé cha i ne na me pri vé entier boi s pri vé entier va l eur pri vé entier poi nt Cons tructeur () Cons tructeur ( va l eur, boi s ) cons tructeur (i nt va l eur, i nt boi s , Stri ng na me) s etNa me(Stri ng na me) : ri en getNa me() : cha i ne s etBoi s (i nt boi s ) :ri en getBoi s () : entier s etVa l eur(i nt va l eur) : ri en getVa l eur() : i nt s etPoi nt(i nt poi nt) :ri en getPoi nt() : entier es tDeMemeBoi s (Ca rte ca rte) : bool een getBoi s Stri ng () : cha i ne getVa l eurStri ng () : cha i ne toStri ng () : cha i ne Jeu tourJoueur(pli) : entier a nnonceGa gna nt(equipe1,equipe2) : rien Abbas AHMAD& Matin BAYRAMOV CarteBelote herite de Carte pri vé bool een i s Atout s ta ti que enti er nbrCa rteBel otePa rBoi s Cons tructeur(va l eur,boi s ) Cons tructeur(va l eur,boi s ,na me) s etAtout() : ri en s etPoi nt() : ri en i s Atout () : bool een es tDeMemeBoi s (Ca rteBel ote ca rte) : bool ea n i s FortTha n(Ca rteBel ote ca rte) : bool een toStri ng() : cha i ne RegleJeu entier decision Ini t() : ri en Page 13 2010 Rapport du projet : Jeu de Belote Jeubelote herite de CollectionsCartes CarteRamasser herite de CollectionCartes pri vé s ta ti c fi na l nbrMa xCa rtes Cons tructeur() getLes Atouts (): l i s te getUneCa rteAtout() : Ca rteBel ote Constructeur() toString() : chaine CollectionCartes l i s te l es Ca rtes pri vé s ta tic fi na l entier nbrMa xCa rtes Cons tructeur() getLes Ca rtes () : l i s te s etLes Ca rtes (Les Ca rtes ) : ri en a ddUneCa rte ( ca rte) : ri en removeUneCa rte ( ca rte) : ri en mel a ngeJeu():ri en getPremi ereCa rte () : Ca rteBel ote removeCa rte ( i ndi ce) : Ca rteBel ote getCa rte ( i ndi ce) : Ca rteBel ote pos s edeLeBoi s Jouee( ca rte) : bool een pos s edeCa rteAtout(): bool een getPremi ereCa rteAtout() :Ca rteBel ote getIndi cePremi ereCa rteAtout() : entier getPl us FortAtout() : Ca rteBel ote toStri ng() : cha i ne PliBelote Herite de CollectionCartes pri ve fi na l enti er nbrMa xCa rtes pri vé enti er nbrca rtePl i Cons tructeur() a ddUneCa rte(ca rte) : ri en Abbas AHMAD& Matin BAYRAMOV MainBelote herite de CollectionCartes pri ve fi na l enti er nbrMa xCa rtes enti er nbrCa rtes Cons tructeur() rempl i rLa Ma i n(jb) : ri en removeCa rte(i ndi ce) : Ca rteBel ote s etAtoutMa i n(a tout) : ri en Page 14 2010 Rapport du projet : Jeu de Belote Joueur cha i ne nom cha i ne prenom Ma i nBel ote ma i n Ca rteRa ma s s er ca rteRa ma s s er pri vé enti er s core Cons tructeur() Cons tructeur(nom) Cons tructeur(nom,prenom) s etNom(nom): ri en getNom(): cha i ne s etPrenom(): ri en getPrenom():cha i ne s etScore(s core): ri en getScore():enti er s etMa i n(ma i n):ri en getMa i n(): Ma i nBel ote ra ma s s erLes Ca rtes (pl i ) : ri en toStri ng() : cha i ne JoueurHumain herite de Joueur Cons tructeur() Cons tructeur(nom) Cons tructeur(nom,prenom) s a i s i rAtout() : enti er s a i s i rCa rte(mb) : enti er joueUneCa rte(pl i ) : ri en Abbas AHMAD& Matin BAYRAMOV JoueurOrdi herite de Joueur Cons tructeur() Cons tructeur(nom) Cons tructeur(nom,prenom) joueUneCa rte(pl i ) : ri en Page 15 2010 Rapport du projet : Jeu de Belote SaisirCarteExcption herite de Exception Cons tructeur(s ) SaisieAtouException herite de Exception Exception Cons tructeur(s ) MauvaiseSaisieException herite de Exception Cons tructeur(s ) Abbas AHMAD& Matin BAYRAMOV Page 16 Rapport du projet : Jeu de Belote 2010 Conclusion Nous avons créé des méthodes utiles pour un jeu belote réel dans les classes. En effet nous avions prévus d’avoir programmer le jeu belote réel. Par contre le temps pour rendre le projet était un peu court, alors nous ne sommes pas arrivés à le faire. Comme nous avons vu un peu d’interface graphique, nous avons eu le souhait de réaliser une interface graphique pour ce projet. Ce qui n’a pas été le cas pour faute de temps. Des remerciements à notre professeur encadrant M. Pierre Alain Masson. Abbas AHMAD& Matin BAYRAMOV Page 17