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

Documents pareils