Ecran-DARTS  1.1
BTS SNIR LaSalle Avignon 2021
Référence de la classe Partie

Déclaration de la classe Partie. Plus de détails...

#include <partie.h>

Graphe de collaboration de Partie:
Collaboration graph

Signaux

void joueurSuivant ()
 Signal qui est envoyer quand le score de la fléchette est supérieur à la volée et qui permet de changer de joueur. Plus de détails...
 

Fonctions membres publiques

void augmenterScore (int numeroJoueur, int nbPoints)
 Méthode qui augemante le score. Plus de détails...
 
void demarrer (QString typePartie, int nbJoueurs)
 Méthode qui Demarre est gere les type de partie. Plus de détails...
 
void diminuerScore (int numeroJoueur, int nbPoints)
 Méthode qui diminue le score. Plus de détails...
 
void effacerScores ()
 Méthode qui efface le score. Plus de détails...
 
void effacerVolee ()
 Méthode qui efface la volée. Plus de détails...
 
bool estDoubleOut ()
 Méthode qui vérifie ci c'est une partie double out. Plus de détails...
 
bool estPartieTerminee (int numeroJoueur, int multiplicateur)
 Méthode qui vérifie partie est terminer. Plus de détails...
 
bool estVoleeTerminee ()
 Méthode qui vérifie ci la volée est terminer. Plus de détails...
 
int getNbJoueurs () const
 Méthode qui retourne le nombres de joueurs. Plus de détails...
 
int getScore (int numeroJoueur) const
 Méthode qui retourne le score. Plus de détails...
 
int getScoreInitial () const
 Méthode qui retourne le score initial. Plus de détails...
 
int getScoreVolee () const
 Méthode qui retourne le score de la volée. Plus de détails...
 
QString getTypePartie () const
 Méthode qui retourne le type de partie. Plus de détails...
 
 Partie (QObject *parent=nullptr)
 Constructeur de la classe Partie. Plus de détails...
 
bool setVolee (int numeroJoueur, int idTouche, int valeur, int multiplicateur)
 Méthode qui met à jour la volée. Plus de détails...
 
 ~Partie ()
 Destructeur de la classe Partie. Plus de détails...
 

Attributs privés

bool doubleOut
 Définir si la partie est une partie double out. Plus de détails...
 
int nbJoueurs
 nombre de joueurs dans la partie Plus de détails...
 
int scoreInitial
 le score initial au début d'une partie Plus de détails...
 
QVector< int > scores
 les scores des différents joueurs Plus de détails...
 
QString typePartie
 le type de partie (avec ou sans double out) Plus de détails...
 
QVector< int > voleeJoueur
 la valeur des différentes fléchettes d'une volée de 3 fléchettes Plus de détails...
 

Description détaillée

Déclaration de la classe Partie.

Cette classe s'occupe de la gestion des parties

Définition à la ligne 30 du fichier partie.h.

Documentation des constructeurs et destructeur

◆ Partie()

Partie::Partie ( QObject parent = nullptr)

Constructeur de la classe Partie.

Paramètres
parentL'adresse de l'objet parent
nbJoueursnombre de joueurs dans la partie
scoresle score des différents joueurs
voleeJoueurLa volée du joueur
doubleOutDéfini si la partie est une partie double out

Définition à la ligne 14 du fichier partie.cpp.

15 {
16  qDebug() << Q_FUNC_INFO;
17 }

◆ ~Partie()

Partie::~Partie ( )

Destructeur de la classe Partie.

Définition à la ligne 24 du fichier partie.cpp.

25 {
26  qDebug() << Q_FUNC_INFO;
27 }

Documentation des fonctions membres

◆ augmenterScore()

void Partie::augmenterScore ( int  numeroJoueur,
int  nbPoints 
)

Méthode qui augemante le score.

Augmente le score.

Paramètres
numeroJoueurLe numéro du joueur
nbPointsLe nombres de points

Définition à la ligne 142 du fichier partie.cpp.

143 {
144  scores[numeroJoueur] += nbPoints;
145  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "nbPoints" << nbPoints << "scores[numeroJoueur]" << scores[numeroJoueur];
146 }

Références scores.

Référencé par setVolee().

◆ demarrer()

void Partie::demarrer ( QString  typePartie,
int  nbJoueurs 
)

Méthode qui Demarre est gere les type de partie.

Définition à la ligne 36 du fichier partie.cpp.

37 {
38  this->nbJoueurs = nbJoueurs;
39  this->typePartie = typePartie;
40 
41  qDebug() << Q_FUNC_INFO << typePartie << nbJoueurs << scores.size();
42 
43  effacerScores();
44  effacerVolee();
45 
46  doubleOut = false;
47  scoreInitial = 501;
48  if(typePartie == "501")
49  {
50  scoreInitial = 501;
51  doubleOut = false;
52  }
53  else if(typePartie == "301")
54  {
55  scoreInitial = 301;
56  doubleOut = false;
57  }
58  else if(typePartie == "501_DOUBLE_OUT")
59  {
60  scoreInitial = 501;
61  doubleOut = true;
62  }
63  else if(typePartie == "301_DOUBLE_OUT")
64  {
65  scoreInitial = 301;
66  doubleOut = true;
67  }
68 
69  for(int i=0; i < nbJoueurs; ++i)
70  {
71  scores[i] = scoreInitial;
72  }
73 
74  qDebug() << Q_FUNC_INFO << typePartie << nbJoueurs;
75 }

Références doubleOut, effacerScores(), effacerVolee(), nbJoueurs, scoreInitial, scores, et typePartie.

Référencé par IhmDARTS::afficherDebutPartie().

◆ diminuerScore()

void Partie::diminuerScore ( int  numeroJoueur,
int  nbPoints 
)

Méthode qui diminue le score.

Diminue le score.

Paramètres
numeroJoueurLe numéro du joueur
nbPointsLe nombres de points

Définition à la ligne 129 du fichier partie.cpp.

130 {
131  scores[numeroJoueur] -= nbPoints;
132  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "nbPoints" << nbPoints << "scores[numeroJoueur]" << scores[numeroJoueur];
133 }

Références scores.

Référencé par setVolee().

◆ effacerScores()

void Partie::effacerScores ( )

Méthode qui efface le score.

Efface le score.

Définition à la ligne 302 du fichier partie.cpp.

303 {
304  qDebug() << Q_FUNC_INFO;
305  for(int i=0; i < NB_JOUEURS_MAX; ++i)
306  {
307  scores[i] = 0;
308  }
309 }

Références NB_JOUEURS_MAX, et scores.

Référencé par demarrer().

◆ effacerVolee()

void Partie::effacerVolee ( )

Méthode qui efface la volée.

Efface la volée.

Définition à la ligne 316 du fichier partie.cpp.

317 {
318  qDebug() << Q_FUNC_INFO;
319  for(int i=0; i < NB_FLECHETTES; ++i)
320  {
322  }
323 }

Références FLECHETTE_NON_JOUEE, NB_FLECHETTES, et voleeJoueur.

Référencé par demarrer(), et setVolee().

◆ estDoubleOut()

bool Partie::estDoubleOut ( )

Méthode qui vérifie ci c'est une partie double out.

Retourne vrai si la partie est une double out.

Définition à la ligne 291 du fichier partie.cpp.

292 {
293  qDebug() << Q_FUNC_INFO << doubleOut;
294  return doubleOut;
295 }

Références doubleOut.

Référencé par estPartieTerminee(), et setVolee().

◆ estPartieTerminee()

bool Partie::estPartieTerminee ( int  numeroJoueur,
int  multiplicateur 
)

Méthode qui vérifie partie est terminer.

Retourne vrai si la partie est terminée.

On retourne vrai si la partie est terminée (score == 0) sinon on retourne false

Définition à la ligne 265 du fichier partie.cpp.

266 {
270  if(scores[numeroJoueur] == 0 && !estDoubleOut())
271  {
272  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "true";
273  return true;
274  }
275 
276  if(scores[numeroJoueur] == 0 && estDoubleOut() && multiplicateur == 2)
277  {
278  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "true";
279  return true;
280  }
281 
282  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "false";
283  return false;
284 }

Références estDoubleOut(), et scores.

Référencé par IhmDARTS::afficherTouche().

◆ estVoleeTerminee()

bool Partie::estVoleeTerminee ( )

Méthode qui vérifie ci la volée est terminer.

Retourne vrai si la volée est terminée.

Définition à la ligne 245 du fichier partie.cpp.

246 {
247  for(int i = 0; i < NB_FLECHETTES; i++)
248  {
250  {
251  qDebug() << Q_FUNC_INFO << "false";
252  return false;
253  }
254  }
255 
256  qDebug() << Q_FUNC_INFO << "true";
257  return true;
258 }

Références FLECHETTE_NON_JOUEE, NB_FLECHETTES, et voleeJoueur.

◆ getNbJoueurs()

int Partie::getNbJoueurs ( ) const

Méthode qui retourne le nombres de joueurs.

Retourne le nombres de joueurs.

Définition à la ligne 82 du fichier partie.cpp.

83 {
84  qDebug() << Q_FUNC_INFO << "nbJoueurs" << nbJoueurs;
85  return nbJoueurs;
86 }

Références nbJoueurs.

◆ getScore()

int Partie::getScore ( int  numeroJoueur) const

Méthode qui retourne le score.

Retourne le score.

Paramètres
numeroJoueurLe numéro du joueur

Définition à la ligne 116 du fichier partie.cpp.

117 {
118  qDebug() << Q_FUNC_INFO << scores[numeroJoueur];
119  return scores[numeroJoueur];
120 }

Références scores.

Référencé par IhmDARTS::afficherTouche().

◆ getScoreInitial()

int Partie::getScoreInitial ( ) const

Méthode qui retourne le score initial.

Retourne le score inicial.

Définition à la ligne 104 du fichier partie.cpp.

105 {
106  qDebug() << Q_FUNC_INFO << scoreInitial;
107  return scoreInitial;
108 }

Références scoreInitial.

Référencé par IhmDARTS::afficherDebutPartie().

◆ getScoreVolee()

int Partie::getScoreVolee ( ) const

Méthode qui retourne le score de la volée.

Retourne le score de la volée.

Définition à la ligne 153 du fichier partie.cpp.

154 {
155  int scoreVolee = 0;
156  int nbVide = 0;
157 
158  for(int i = 0; i < voleeJoueur.size(); i++)
159  {
160  if(voleeJoueur[i] != -1)
161  {
162  scoreVolee = scoreVolee + scores[i];
163  }
164  else
165  {
166  nbVide++;
167  }
168  }
169 
170  if(nbVide == 3)
171  return -1;
172 
173  qDebug() << Q_FUNC_INFO << "scoreVolee" << scoreVolee;
174 
175  return scoreVolee;
176 }

Références scores, et voleeJoueur.

◆ getTypePartie()

QString Partie::getTypePartie ( ) const

Méthode qui retourne le type de partie.

Retourne le type de partie.

Définition à la ligne 93 du fichier partie.cpp.

94 {
95  qDebug() << Q_FUNC_INFO << "typePartie" << typePartie;
96  return typePartie;
97 }

Références typePartie.

◆ joueurSuivant

void Partie::joueurSuivant ( )
signal

Signal qui est envoyer quand le score de la fléchette est supérieur à la volée et qui permet de changer de joueur.

Référencé par setVolee().

◆ setVolee()

bool Partie::setVolee ( int  numeroJoueur,
int  idTouche,
int  valeur,
int  multiplicateur 
)

Méthode qui met à jour la volée.

Met à jour la volée.

Paramètres
numeroJoueurLe numéro du joueur
idToucheLe numéro de la touche
valeurLa valeur de la touche
multiplicateurLe multiplcateur de la touche

Définition à la ligne 187 du fichier partie.cpp.

188 {
189  // 1. on calcule le nombre de points de la fléchette
190  int touche = valeur * multiplicateur;
191  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "idTouche" << idTouche << "valeur" << valeur << "multiplicateur" << multiplicateur << "touche" << touche;
192 
193  // 2. on vérifie si la volée précédente est terminee
194  if(idTouche == 0)
195  //if(estVoleeTerminee())
196  effacerVolee();
197 
198  // 3. on stocke la fléchette jouée
199  voleeJoueur[idTouche] = touche;
200 
201  qDebug() << Q_FUNC_INFO << "voleeJoueur[idTouche]" << voleeJoueur[idTouche];
202 
203  // 4. on met à jour le score si c'est possible on retourne true
204  if(scores[numeroJoueur] >= voleeJoueur[idTouche])
205  {
206  diminuerScore(numeroJoueur, touche);
207  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "idTouche" << idTouche << "touche" << touche << "scores[numeroJoueur]" << scores[numeroJoueur];
208  return true;
209 
210  // 5. Est-ce une partie DOUBLE OUT ?
211  if(estDoubleOut() && multiplicateur == 2)
212  {
213  diminuerScore(numeroJoueur, touche);
214  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "idTouche" << idTouche << "touche" << touche << "scores[numeroJoueur]" << scores[numeroJoueur];
215  return true;
216  }
217  else
218  {
219  for(int i = (idTouche - 1); i >= 0; --i)
220  {
221  augmenterScore(numeroJoueur, touche);
222  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "idTouche" << idTouche << "touche" << touche << "scores[numeroJoueur]" << scores[numeroJoueur];
223  emit joueurSuivant();
224  }
225  return true;
226  }
227  }
228 
229  // 6. sinon on annule les fléchettes précédentes et on retourne false
230  for(int i = (idTouche - 1); i >= 0; --i)
231  {
232  augmenterScore(numeroJoueur, voleeJoueur[i]);
233  emit joueurSuivant();
234  }
235 
236  qDebug() << Q_FUNC_INFO << "numeroJoueur" << numeroJoueur << "idTouche" << idTouche << "touche" << touche << "scores[numeroJoueur]" << scores[numeroJoueur];
237  return false;
238 }

Références augmenterScore(), diminuerScore(), effacerVolee(), estDoubleOut(), joueurSuivant(), scores, et voleeJoueur.

Référencé par IhmDARTS::afficherTouche().

Documentation des données membres

◆ doubleOut

bool Partie::doubleOut
private

Définir si la partie est une partie double out.

Définition à la ligne 40 du fichier partie.h.

Référencé par demarrer(), et estDoubleOut().

◆ nbJoueurs

int Partie::nbJoueurs
private

nombre de joueurs dans la partie

Définition à la ligne 35 du fichier partie.h.

Référencé par demarrer(), et getNbJoueurs().

◆ scoreInitial

int Partie::scoreInitial
private

le score initial au début d'une partie

Définition à la ligne 36 du fichier partie.h.

Référencé par demarrer(), et getScoreInitial().

◆ scores

QVector<int> Partie::scores
private

les scores des différents joueurs

Définition à la ligne 37 du fichier partie.h.

Référencé par augmenterScore(), demarrer(), diminuerScore(), effacerScores(), estPartieTerminee(), getScore(), getScoreVolee(), et setVolee().

◆ typePartie

QString Partie::typePartie
private

le type de partie (avec ou sans double out)

Définition à la ligne 39 du fichier partie.h.

Référencé par demarrer(), et getTypePartie().

◆ voleeJoueur

QVector<int> Partie::voleeJoueur
private

la valeur des différentes fléchettes d'une volée de 3 fléchettes

Définition à la ligne 38 du fichier partie.h.

Référencé par effacerVolee(), estVoleeTerminee(), getScoreVolee(), et setVolee().


La documentation de cette classe a été générée à partir des fichiers suivants :
Partie::augmenterScore
void augmenterScore(int numeroJoueur, int nbPoints)
Méthode qui augemante le score.
Definition: partie.cpp:142
Partie::scoreInitial
int scoreInitial
le score initial au début d'une partie
Definition: partie.h:36
Partie::typePartie
QString typePartie
le type de partie (avec ou sans double out)
Definition: partie.h:39
FLECHETTE_NON_JOUEE
#define FLECHETTE_NON_JOUEE
La valeur pour les fléchette non jouer.
Definition: partie.h:23
Partie::effacerVolee
void effacerVolee()
Méthode qui efface la volée.
Definition: partie.cpp:316
Partie::scores
QVector< int > scores
les scores des différents joueurs
Definition: partie.h:37
Partie::estDoubleOut
bool estDoubleOut()
Méthode qui vérifie ci c'est une partie double out.
Definition: partie.cpp:291
Partie::joueurSuivant
void joueurSuivant()
Signal qui est envoyer quand le score de la fléchette est supérieur à la volée et qui permet de chang...
NB_FLECHETTES
#define NB_FLECHETTES
Le nombres de flechettes.
Definition: partie.h:17
NB_JOUEURS_MAX
#define NB_JOUEURS_MAX
Le nombres de joueurs max.
Definition: ihmDarts.h:112
Partie::diminuerScore
void diminuerScore(int numeroJoueur, int nbPoints)
Méthode qui diminue le score.
Definition: partie.cpp:129
Partie::voleeJoueur
QVector< int > voleeJoueur
la valeur des différentes fléchettes d'une volée de 3 fléchettes
Definition: partie.h:38
Partie::nbJoueurs
int nbJoueurs
nombre de joueurs dans la partie
Definition: partie.h:35
QObject
Partie::doubleOut
bool doubleOut
Définir si la partie est une partie double out.
Definition: partie.h:40
Partie::effacerScores
void effacerScores()
Méthode qui efface le score.
Definition: partie.cpp:302