Projet Darts  0.2
BTS SNIR LaSalle Avignon 2020
Référence de la classe Darts

Déclaration de la classe Darts (Module Ecran-DARTS) Plus de détails...

#include <darts.h>

Graphe de collaboration de Darts:
Collaboration graph

Signaux

void actualiserCible ()
 signal émis pour changer actualiser l'affichage de la cible Plus de détails...
 
void afficherInfoTournois ()
 
void afficherNouvellePartie ()
 signal émis quand il y a une nouvelle partie Plus de détails...
 
void afficherTournois (QString modeJeu, QString nomTournois)
 signal émis pour afficher le tournois Plus de détails...
 
void changementJoueurActif ()
 signal émis quand le joueur actif change Plus de détails...
 
void changementJoueurActifTournoi ()
 
void changerEtatPartie ()
 signal émis pour changer l'etat de la partie Plus de détails...
 
void debuterTournois ()
 signal émis pour debuter le tournois Plus de détails...
 
void etatPartieAttenteTournois ()
 
void etatPartieFini ()
 signal émis pour mettre l'etat de la partie en fin Plus de détails...
 
void etatPartieTournois ()
 signal émis pour mettre en etat de tournois Plus de détails...
 
void finPartie (QString, int, bool)
 signal émis quand c'est la fin de la partie Plus de détails...
 
void finTournois (QString, QString, QList< Joueur >)
 
void jouerSon (QString son)
 signal émis pour Lancer un son Plus de détails...
 
void miseAJourMoyenneVolee ()
 signal émis pour mettre à jour la moyenne des volées Plus de détails...
 
void miseAJourMoyenneVoleeTournois ()
 signal émis pour mettre a jour la moyenne des Volées en mode tournois Plus de détails...
 
void miseAJourPoint ()
 signal émis pour mettre à jour les points des joueurs Plus de détails...
 
void miseAJourPointTournois ()
 signal émis pour mettre a jour les points du tournois Plus de détails...
 
void nouvelImpact (int, int, int)
 signal émis quand il y a un nouvel Impact Plus de détails...
 
void nouvelleManche ()
 signal émis quand on change de manche Plus de détails...
 
void voleeAnnulee ()
 signal émis quand la volées est annulé Plus de détails...
 

Fonctions membres publiques

void arreterPartie ()
 arrête la partie Plus de détails...
 
void configurationTournois (QStringList joueurList, QString modeJeu, QString nomTournois)
 methode utiliser pour configurer le tournois Plus de détails...
 
 Darts (QObject *parent=nullptr)
 Constructeur de la classe Darts. Plus de détails...
 
void demarrerTournois ()
 methode appelé pour demarrer le tournois Plus de détails...
 
DartsgetDarts () const
 
int getDernierJoueur () const
 Retourne le dernier joueur a jouer. Plus de détails...
 
int getJoueurActif () const
 Retourne le numéro du joueur actif. Plus de détails...
 
QList< JoueurgetListJoueur () const
 Retourne une liste des joueurs. Plus de détails...
 
int getManche () const
 Retourne la manche. Plus de détails...
 
QString getModeDeJeu () const
 Retourne le mode de jeu. Plus de détails...
 
int getNbVolees () const
 Retourne le nombre de volées de la partie. Plus de détails...
 
int getPointVolees () const
 Retourne la manche. Plus de détails...
 
int getPremierJoueur () const
 Retourne le premier Joueur a jouer. Plus de détails...
 
SolutiongetSolution () const
 retourne l'objet solution Plus de détails...
 
int getVoleeMax () const
 Retourne la volée max. Plus de détails...
 
void initialiserPartie (QStringList joueurList, QString modeJeu)
 Initialise la partie. Plus de détails...
 
void receptionnerImpact (int typePoint, int point)
 Permets de traiter la réception d'impact. Plus de détails...
 
void receptionnerImpactTournois (int typePoint, int point)
 methode qui gere le deroulement de la partie tournois Plus de détails...
 
void reinitialiserPartie ()
 Méthode qui permet de remettre a zero les differents attribut et conteneur pour une nouvelle partie. Plus de détails...
 
void setManche (int manche)
 Permets de mettre à jour le numéro de manche. Plus de détails...
 
void setVoleeMax (int voleeMax)
 Permets de mettre à jour le volé max. Plus de détails...
 
QString testerModeDeJeu ()
 Méthode qui teste le mode de jeu. Plus de détails...
 
 ~Darts ()
 Destructeur de la classe Darts. Plus de détails...
 

Fonctions membres privées

QString calculerGagnant ()
 Calcule le gagnant de la partie si la partie doit s'arrêter avant la fin. Plus de détails...
 
void calculerMoyenneVolees ()
 Calcule la moyenne des volées de chaque joueur. Plus de détails...
 
void calculerMoyenneVoleesTournois ()
 Calcule la moyenne des volées de chaque joueur pour le tournois. Plus de détails...
 
void calculerPoints (int point, int typePoint)
 Teste s'il reste qu'un joueur n'était pas éliminé Plus de détails...
 
void controlerJoueurEliminer ()
 Change de joueur si le joueur actuel est éliminé Plus de détails...
 
void enleverPointImpact ()
 Met à jours le score du joueur. Plus de détails...
 
bool estDernier ()
 test pour savoir si la personne a gagner le tournois Plus de détails...
 
void gererFinPartieTournois ()
 methode qui gere le deroulement en fin de manche Plus de détails...
 
void gererManche ()
 Permets de gérer le changement de manche en fonction des fléchettes de chaque joueur. Plus de détails...
 
void gererMancheTournois ()
 Permets de gérer le changement de manche en fonction des fléchettes de chaque joueur. Plus de détails...
 
void gererVoleeMax ()
 Teste la volée pour savoir si elle est supérieure à la volée Max. Plus de détails...
 
void initialiserFinTournois ()
 methode qui gere la fin du tournois Plus de détails...
 
void testerImpact (int typePoint)
 Teste si le joueur a gagné Plus de détails...
 
void testerImpactTournois (int typePoint)
 teste l'impact pour le mode tournois Plus de détails...
 
void testerNombreJoueurRestand ()
 Teste s'il reste qu'un joueur n'était pas éliminé Plus de détails...
 
void testerPoint (int typePoint, int point)
 Méthode qui teste les Impact pour savoir quel son jouer. Plus de détails...
 
void testerSiJoueurEliminer ()
 Teste si le joueur est à 1 point à la fin de la manche. Plus de détails...
 

Attributs privés

int dernierJoueur
 contient le dernier joueur du tournois a jouer Plus de détails...
 
QStringList joueur
 contient les noms des differents joueur Plus de détails...
 
int joueurActif
 contient le numero du joueur en train de jouer Plus de détails...
 
QList< Joueurjoueurs
 contient des objets joueurs Plus de détails...
 
QList< JoueurjoueursTournoisEliminer
 contient des objets joueurs eliminer pendant le tournois Plus de détails...
 
int manche
 contient le numero de la manche actuel Plus de détails...
 
QString ModeDeJeu
 contient le mode de jeu en cours Plus de détails...
 
int nbJoueur
 contient le nombre de joueur Plus de détails...
 
int nbVolees
 contient le nombre de Volées de la partie en cours Plus de détails...
 
QString NomTournois
 contient le nom du tournois Plus de détails...
 
int pointLancer
 contient les point associer l'impact de la fleche Plus de détails...
 
int pointVoleeEnCours
 contient le score de la Volées en cours Plus de détails...
 
int premierJoueur
 contient le premier joueur du tournois a jouer Plus de détails...
 
Solutionsolution
 Association vers l'objet solution. Plus de détails...
 
int voleeMax
 contient la volées Max Plus de détails...
 

Description détaillée

Déclaration de la classe Darts (Module Ecran-DARTS)

Cette classe s'occuper du déroulement d'une partie

Définition à la ligne 33 du fichier darts.h.

Documentation des constructeurs et destructeur

◆ Darts()

Darts::Darts ( QObject parent = nullptr)
explicit

Constructeur de la classe Darts.

Paramètres
parent

Définition à la ligne 22 du fichier darts.cpp.

Références solution.

22  : QObject(parent), joueur(nullptr), nbJoueur(0), joueurActif(0), manche(1), pointLancer(0), voleeMax(0), nbVolees(0), ModeDeJeu(""),pointVoleeEnCours(0)
23 {
24  qDebug() << Q_FUNC_INFO;
25  solution = new Solution(this);
26 }
Solution * solution
Association vers l&#39;objet solution.
Definition: darts.h:88
int pointVoleeEnCours
contient le score de la Volées en cours
Definition: darts.h:100
int voleeMax
contient la volées Max
Definition: darts.h:96
int nbJoueur
contient le nombre de joueur
Definition: darts.h:92
Déclaration de la classe Solution (Module Ecran-DARTS)
Definition: solution.h:30
int manche
contient le numero de la manche actuel
Definition: darts.h:94
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98
int nbVolees
contient le nombre de Volées de la partie en cours
Definition: darts.h:97
QStringList joueur
contient les noms des differents joueur
Definition: darts.h:91
La classe QObject est la classe de base de tous les objets Qt. Elle permet à ces objets Qt de dispose...
int pointLancer
contient les point associer l&#39;impact de la fleche
Definition: darts.h:95

◆ ~Darts()

Darts::~Darts ( )

Destructeur de la classe Darts.

Définition à la ligne 33 du fichier darts.cpp.

34 {
35  qDebug() << Q_FUNC_INFO;
36 }

Documentation des fonctions membres

◆ actualiserCible

void Darts::actualiserCible ( )
signal

signal émis pour changer actualiser l'affichage de la cible

Référencé par demarrerTournois(), receptionnerImpact(), et receptionnerImpactTournois().

◆ afficherInfoTournois

void Darts::afficherInfoTournois ( )
signal

◆ afficherNouvellePartie

void Darts::afficherNouvellePartie ( )
signal

signal émis quand il y a une nouvelle partie

Référencé par initialiserPartie().

◆ afficherTournois

void Darts::afficherTournois ( QString  modeJeu,
QString  nomTournois 
)
signal

signal émis pour afficher le tournois

Référencé par configurationTournois(), et gererFinPartieTournois().

◆ arreterPartie()

void Darts::arreterPartie ( )

arrête la partie

Définition à la ligne 462 du fichier darts.cpp.

Références calculerGagnant(), etatPartieFini(), finPartie(), et getVoleeMax().

Référencé par Communication::decomposerTrame(), et testerNombreJoueurRestand().

463 {
464  emit finPartie(calculerGagnant(), getVoleeMax(), false);
465  emit etatPartieFini();
466 }
QString calculerGagnant()
Calcule le gagnant de la partie si la partie doit s&#39;arrêter avant la fin.
Definition: darts.cpp:474
void etatPartieFini()
signal émis pour mettre l&#39;etat de la partie en fin
void finPartie(QString, int, bool)
signal émis quand c&#39;est la fin de la partie
int getVoleeMax() const
Retourne la volée max.
Definition: darts.cpp:77

◆ calculerGagnant()

QString Darts::calculerGagnant ( )
private

Calcule le gagnant de la partie si la partie doit s'arrêter avant la fin.

Renvoie
QString

Définition à la ligne 474 du fichier darts.cpp.

Références joueurs.

Référencé par arreterPartie().

475 {
476  QString gagnant;
477  int scoreGagnant = 99999;
478  for(int i = 0; i <= joueurs.size() - 1; i++)
479  {
480  if(scoreGagnant > joueurs[i].getScore() && !joueurs[i].getEliminer()) // test le personne aillant le score le plus bas score mais aussi qu'il ne soit pas eliminer
481  {
482  scoreGagnant = joueurs[i].getScore();
483  gagnant = joueurs[i].getNom();
484  }
485  }
486  return "↢ Winner " + gagnant + " ↣";
487 }
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89

◆ calculerMoyenneVolees()

void Darts::calculerMoyenneVolees ( )
private

Calcule la moyenne des volées de chaque joueur.

Définition à la ligne 427 du fichier darts.cpp.

Références joueurs, et miseAJourMoyenneVolee().

Référencé par controlerJoueurEliminer(), et gererManche().

428 {
429  for(int i = 0; i <= joueurs.size() - 1; i++)
430  {
431  int moyenneVolee = 0;
432 
433  for(int j = 0; j < joueurs[i].getHistoriqueVolees().size(); j++)
434  {
435  moyenneVolee += joueurs[i].getHistoriqueVolees()[j];
436  }
437 
438  moyenneVolee = moyenneVolee / joueurs[i].getHistoriqueVolees().size();
439  joueurs[i].setMoyenneVolee(moyenneVolee);
440  }
441  emit miseAJourMoyenneVolee();
442 }
void miseAJourMoyenneVolee()
signal émis pour mettre à jour la moyenne des volées
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89

◆ calculerMoyenneVoleesTournois()

void Darts::calculerMoyenneVoleesTournois ( )
private

Calcule la moyenne des volées de chaque joueur pour le tournois.

Définition à la ligne 730 du fichier darts.cpp.

Références dernierJoueur, joueurs, miseAJourMoyenneVoleeTournois(), et premierJoueur.

Référencé par gererMancheTournois().

731 {
732  for(int i = premierJoueur; i <= dernierJoueur; i++)
733  {
734  int moyenneVolee = 0;
735 
736  for(int j = 0; j < joueurs[i].getHistoriqueVolees().size(); j++)
737  {
738  moyenneVolee += joueurs[i].getHistoriqueVolees()[j];
739  }
740 
741  moyenneVolee = moyenneVolee / joueurs[i].getHistoriqueVolees().size();
742  joueurs[i].setMoyenneVolee(moyenneVolee);
743  }
745 }
int premierJoueur
contient le premier joueur du tournois a jouer
Definition: darts.h:101
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
int dernierJoueur
contient le dernier joueur du tournois a jouer
Definition: darts.h:102
void miseAJourMoyenneVoleeTournois()
signal émis pour mettre a jour la moyenne des Volées en mode tournois

◆ calculerPoints()

void Darts::calculerPoints ( int  point,
int  typePoint 
)
private

Teste s'il reste qu'un joueur n'était pas éliminé

Paramètres
pointla zone
typePointun simple, double ou triple

Définition à la ligne 519 du fichier darts.cpp.

Références DOUBLE_POINT, pointLancer, SIMPLE_POINT, TRIPLE_POINT, et ZERO_POINT.

Référencé par receptionnerImpact(), et receptionnerImpactTournois().

520 {
521  switch(typePoint)
522  {
523  case TRIPLE_POINT:
524  pointLancer = point * TRIPLE_POINT;
525  break;
526  case DOUBLE_POINT:
527  pointLancer = point * DOUBLE_POINT;
528  break;
529  case SIMPLE_POINT:
530  pointLancer = point;
531  break;
532  case ZERO_POINT:
533  pointLancer = point * ZERO_POINT;
534  break;
535  default:
536  qDebug() << Q_FUNC_INFO << "type de point non valide:" << typePoint;
537  break;
538  }
539 }
#define ZERO_POINT
Definition: darts.h:21
#define TRIPLE_POINT
Definition: darts.h:18
#define SIMPLE_POINT
Definition: darts.h:20
#define DOUBLE_POINT
Definition: darts.h:19
int pointLancer
contient les point associer l&#39;impact de la fleche
Definition: darts.h:95

◆ changementJoueurActif

void Darts::changementJoueurActif ( )
signal

signal émis quand le joueur actif change

Référencé par gererManche().

◆ changementJoueurActifTournoi

void Darts::changementJoueurActifTournoi ( )
signal

◆ changerEtatPartie

void Darts::changerEtatPartie ( )
signal

signal émis pour changer l'etat de la partie

Référencé par initialiserPartie().

◆ configurationTournois()

void Darts::configurationTournois ( QStringList  joueurList,
QString  modeJeu,
QString  nomTournois 
)

methode utiliser pour configurer le tournois

Paramètres
joueurList
modeJeu
nomTournois

Définition à la ligne 570 du fichier darts.cpp.

Références afficherInfoTournois(), afficherTournois(), dernierJoueur, etatPartieAttenteTournois(), joueurActif, joueurs, ModeDeJeu, NB_FLECHETTE, nbJoueur, NomTournois, premierJoueur, reinitialiserPartie(), solution, et Solution::trouverSolution().

Référencé par Communication::decomposerTrameTournois().

571 {
572  nbJoueur = joueurList.size() - 1;
573  ModeDeJeu = modeJeu;
574  NomTournois = nomTournois;
575  qDebug() << Q_FUNC_INFO << "Nom Tournois " << nomTournois << "nbJoueur " << nbJoueur << " | Mode De Jeu " << ModeDeJeu;
576 
577  if(ModeDeJeu.toInt() >= 101 && ModeDeJeu.toInt() <= 1001)
578  {
579  for(int i = 1; i < joueurList.size() ; i++)
580  {
581  Joueur player(joueurList.at(i), ModeDeJeu.toInt(), NB_FLECHETTE);
582  joueurs.push_back(player);
583  }
584  }
585  else if(ModeDeJeu.contains("_DOUBLE_OUT") && (ModeDeJeu.section("_",0,0).toInt() >= 101 && ModeDeJeu.section("_",0,0).toInt() <= 1001))
586  {
587  for(int i = 1; i < joueurList.size() ; i++)
588  {
589  Joueur player(joueurList.at(i), ModeDeJeu.section("_",0,0).toInt(), NB_FLECHETTE);
590  joueurs.push_back(player);
591  }
592  }
593  else
594  {
595  qDebug() << Q_FUNC_INFO << "Erreur Mode De Jeu : " << ModeDeJeu;
597  return;
598  }
599  solution->trouverSolution(joueurs[joueurActif].getScore(),joueurs[joueurActif].getFlechette());
600 
601  premierJoueur = 0;
602  dernierJoueur = 1;
603 
604  emit afficherTournois(modeJeu, nomTournois);
606  emit afficherInfoTournois();
607 }
Solution * solution
Association vers l&#39;objet solution.
Definition: darts.h:88
void trouverSolution(int s, int flechettes)
Méthode qui trouve la meilleure solution.
Definition: solution.cpp:296
int premierJoueur
contient le premier joueur du tournois a jouer
Definition: darts.h:101
int nbJoueur
contient le nombre de joueur
Definition: darts.h:92
Déclaration de la classe Joueur (Module Ecran-DARTS)
Definition: joueur.h:21
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
QString NomTournois
contient le nom du tournois
Definition: darts.h:99
void afficherInfoTournois()
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98
int dernierJoueur
contient le dernier joueur du tournois a jouer
Definition: darts.h:102
void afficherTournois(QString modeJeu, QString nomTournois)
signal émis pour afficher le tournois
#define NB_FLECHETTE
Definition: darts.h:23
void reinitialiserPartie()
Méthode qui permet de remettre a zero les differents attribut et conteneur pour une nouvelle partie...
Definition: darts.cpp:217
void etatPartieAttenteTournois()

◆ controlerJoueurEliminer()

void Darts::controlerJoueurEliminer ( )
private

Change de joueur si le joueur actuel est éliminé

Définition à la ligne 391 du fichier darts.cpp.

Références calculerMoyenneVolees(), getManche(), joueurActif, joueurs, nbJoueur, nouvelleManche(), et setManche().

Référencé par gererManche().

392 {
393  while(joueurs[joueurActif].getEliminer()) //tant que le joueur est eliminer on passe donc au joueur suivant
394  {
395  if(joueurActif == nbJoueur - 1) //si le joueur est le dernier de la manche à jouer
396  {
397  joueurActif = 0;
398  setManche(getManche() + 1);
400  emit nouvelleManche();
401  }
402  else //si le joueur n'est pas le dernier de la manche
403  {
404  joueurActif++;
405  }
406  }
407 }
int nbJoueur
contient le nombre de joueur
Definition: darts.h:92
int getManche() const
Retourne la manche.
Definition: darts.cpp:44
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void nouvelleManche()
signal émis quand on change de manche
void calculerMoyenneVolees()
Calcule la moyenne des volées de chaque joueur.
Definition: darts.cpp:427
void setManche(int manche)
Permets de mettre à jour le numéro de manche.
Definition: darts.cpp:165

◆ debuterTournois

void Darts::debuterTournois ( )
signal

signal émis pour debuter le tournois

Référencé par demarrerTournois().

◆ demarrerTournois()

void Darts::demarrerTournois ( )

methode appelé pour demarrer le tournois

Définition à la ligne 614 du fichier darts.cpp.

Références actualiserCible(), changementJoueurActifTournoi(), debuterTournois(), et etatPartieTournois().

Référencé par Communication::decomposerTrameTournois().

615 {
616  emit actualiserCible();
618  emit debuterTournois();
619  emit etatPartieTournois();
620 }
void etatPartieTournois()
signal émis pour mettre en etat de tournois
void actualiserCible()
signal émis pour changer actualiser l&#39;affichage de la cible
void debuterTournois()
signal émis pour debuter le tournois
void changementJoueurActifTournoi()

◆ enleverPointImpact()

void Darts::enleverPointImpact ( )
private

Met à jours le score du joueur.

Définition à la ligne 314 du fichier darts.cpp.

Références etatPartieFini(), finPartie(), gererVoleeMax(), getVoleeMax(), jouerSon(), joueurActif, joueurs, nbVolees, solution, Solution::trouverSolution(), et voleeAnnulee().

Référencé par testerImpact(), et testerImpactTournois().

315 {
316  if(joueurs[joueurActif].getScore() <= 0) //score Volée inferieure au score = Volée annulée
317  {
318  joueurs[joueurActif].setScore(joueurs[joueurActif].getScoreManchePrecedente());
319  emit voleeAnnulee();
320 
321  joueurs[joueurActif].setNbFlechette(0);
322  }
323  else if(joueurs[joueurActif].getScore() == 1 && joueurs.size() == 1) // test si le joueur est seul à jouer et s'il est a 1 point == joueur éliminer donc fin de partie
324  {
325  gererVoleeMax();
326  emit jouerSon("perdu.wav");
327  emit finPartie("↢ " + joueurs[joueurActif].getNom() + " a perdu ↣", getVoleeMax(), false);
328  emit etatPartieFini();
329  }
330  else
331  {
332  nbVolees++;
333  joueurs[joueurActif].setNbFlechette(joueurs[joueurActif].getFlechette() - 1);
334  solution->trouverSolution(joueurs[joueurActif].getScore(),joueurs[joueurActif].getFlechette());
335  }
336 }
Solution * solution
Association vers l&#39;objet solution.
Definition: darts.h:88
void trouverSolution(int s, int flechettes)
Méthode qui trouve la meilleure solution.
Definition: solution.cpp:296
void etatPartieFini()
signal émis pour mettre l&#39;etat de la partie en fin
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void finPartie(QString, int, bool)
signal émis quand c&#39;est la fin de la partie
int getVoleeMax() const
Retourne la volée max.
Definition: darts.cpp:77
void voleeAnnulee()
signal émis quand la volées est annulé
int nbVolees
contient le nombre de Volées de la partie en cours
Definition: darts.h:97
void jouerSon(QString son)
signal émis pour Lancer un son
void gererVoleeMax()
Teste la volée pour savoir si elle est supérieure à la volée Max.
Definition: darts.cpp:449

◆ estDernier()

bool Darts::estDernier ( )
private

test pour savoir si la personne a gagner le tournois

Renvoie
bool

Définition à la ligne 818 du fichier darts.cpp.

Références joueurs.

Référencé par gererFinPartieTournois().

819 {
820  int estdernier = 0;
821  for(int i = 0; i < joueurs.size(); i++)
822  {
823  qDebug() << joueurs[i].getNom() << " : " << joueurs[i].getEliminer() << endl;
824  if(joueurs[i].getEliminer() == false)
825  estdernier++;
826  }
827 
828  if(estdernier == 1)
829  return true;
830 
831  return false;
832 }
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89

◆ etatPartieAttenteTournois

void Darts::etatPartieAttenteTournois ( )
signal

◆ etatPartieFini

void Darts::etatPartieFini ( )
signal

signal émis pour mettre l'etat de la partie en fin

Référencé par arreterPartie(), enleverPointImpact(), gererFinPartieTournois(), et testerImpact().

◆ etatPartieTournois

void Darts::etatPartieTournois ( )
signal

signal émis pour mettre en etat de tournois

Référencé par demarrerTournois().

◆ finPartie

void Darts::finPartie ( QString  ,
int  ,
bool   
)
signal

signal émis quand c'est la fin de la partie

Référencé par arreterPartie(), enleverPointImpact(), testerImpact(), et testerImpactTournois().

◆ finTournois

void Darts::finTournois ( QString  ,
QString  ,
QList< Joueur  
)
signal

Référencé par initialiserFinTournois().

◆ gererFinPartieTournois()

void Darts::gererFinPartieTournois ( )
private

methode qui gere le deroulement en fin de manche

Définition à la ligne 752 du fichier darts.cpp.

Références afficherTournois(), dernierJoueur, estDernier(), etatPartieFini(), initialiserFinTournois(), joueurActif, joueurs, joueursTournoisEliminer, ModeDeJeu, NB_FLECHETTE, nbVolees, NomTournois, premierJoueur, et setManche().

Référencé par testerImpactTournois().

753 {
755  {
756  joueurs[premierJoueur].setEliminer(false);
757  joueurs[dernierJoueur].setEliminer(true);
758  }
759 
761  {
762  joueurs[dernierJoueur].setEliminer(false);
763  joueurs[premierJoueur].setEliminer(true);
764  }
765 
766  if(premierJoueur + 2 < (joueurs.size() - 1) && dernierJoueur + 2 <= (joueurs.size() - 1))
767  {
768  premierJoueur += 2;
769  dernierJoueur += 2;
770  nbVolees = 0;
771 
772  qDebug() << "premierJoueur " << premierJoueur << endl;
773  qDebug() << "dernierJoueur " << dernierJoueur << endl;
774  }
775  else if(estDernier())
776  {
777  qDebug() << "Gagnant tournois " << joueurs[joueurActif].getNom() << endl;
779  emit etatPartieFini();
780  }
781  else
782  {
783  for(int i = joueurs.size() - 1; i >= 0; i--)
784  {
785  if(joueurs[i].getEliminer())
786  {
787  joueursTournoisEliminer.push_back(joueurs[i]);
788  joueurs.removeAt(i);
789  }
790  }
791  premierJoueur = 0;
792  dernierJoueur = 1;
793  nbVolees = 0;
794 
795  for(int i = 0; i < joueurs.size(); i++)
796  {
797 
798  joueurs[i].setScore(ModeDeJeu.section("_",0,0).toInt());
799  joueurs[i].setMoyenneVolee(0);
800  joueurs[i].setScoreManchePrecedente(ModeDeJeu.section("_",0,0).toInt());
801  joueurs[i].setNbFlechette(NB_FLECHETTE);
802  }
803  }
804 
806  setManche(1);
807 
809 
810 }
int premierJoueur
contient le premier joueur du tournois a jouer
Definition: darts.h:101
QList< Joueur > joueursTournoisEliminer
contient des objets joueurs eliminer pendant le tournois
Definition: darts.h:90
void etatPartieFini()
signal émis pour mettre l&#39;etat de la partie en fin
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
QString NomTournois
contient le nom du tournois
Definition: darts.h:99
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98
int dernierJoueur
contient le dernier joueur du tournois a jouer
Definition: darts.h:102
void afficherTournois(QString modeJeu, QString nomTournois)
signal émis pour afficher le tournois
int nbVolees
contient le nombre de Volées de la partie en cours
Definition: darts.h:97
bool estDernier()
test pour savoir si la personne a gagner le tournois
Definition: darts.cpp:818
#define NB_FLECHETTE
Definition: darts.h:23
void initialiserFinTournois()
methode qui gere la fin du tournois
Definition: darts.cpp:839
void setManche(int manche)
Permets de mettre à jour le numéro de manche.
Definition: darts.cpp:165

◆ gererManche()

void Darts::gererManche ( )
private

Permets de gérer le changement de manche en fonction des fléchettes de chaque joueur.

Définition à la ligne 343 du fichier darts.cpp.

Références calculerMoyenneVolees(), changementJoueurActif(), controlerJoueurEliminer(), gererVoleeMax(), getManche(), jouerSon(), joueurActif, joueurs, NB_FLECHETTE, nbJoueur, nouvelleManche(), pointVoleeEnCours, setManche(), solution, testerNombreJoueurRestand(), testerSiJoueurEliminer(), et Solution::trouverSolution().

Référencé par testerImpact().

344 {
345  if(joueurs[joueurActif].getFlechette() == 0) //fin de la volées du joueur
346  {
347  joueurs[joueurActif].setNbFlechette(NB_FLECHETTE);
348 
349  pointVoleeEnCours = 0;
350 
351  gererVoleeMax();
354 
355  joueurs[joueurActif].addHistoriqueVolees((joueurs[joueurActif].getScoreManchePrecedente() - joueurs[joueurActif].getScore()));
356 
357  if((joueurs[joueurActif].getScoreManchePrecedente() - joueurs[joueurActif].getScore()) == 180)
358  emit jouerSon("180.wav");
359 
360  joueurs[joueurActif].setScoreManchePrecedente(joueurs[joueurActif].getScore());
361 
362  if(joueurActif == nbJoueur - 1) //equivalent a la fin de manche
363  {
364  joueurActif = 0;
365 
367 
368  setManche(getManche() + 1);
369  emit changementJoueurActif();
371  emit nouvelleManche();
372  solution->trouverSolution(joueurs[joueurActif].getScore(),joueurs[joueurActif].getFlechette());
373  }
374  else
375  {
376  joueurActif++;
377 
379 
380  emit changementJoueurActif();
381  solution->trouverSolution(joueurs[joueurActif].getScore(),joueurs[joueurActif].getFlechette());
382  }
383  }
384 }
Solution * solution
Association vers l&#39;objet solution.
Definition: darts.h:88
void trouverSolution(int s, int flechettes)
Méthode qui trouve la meilleure solution.
Definition: solution.cpp:296
int pointVoleeEnCours
contient le score de la Volées en cours
Definition: darts.h:100
int nbJoueur
contient le nombre de joueur
Definition: darts.h:92
int getManche() const
Retourne la manche.
Definition: darts.cpp:44
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void changementJoueurActif()
signal émis quand le joueur actif change
void testerSiJoueurEliminer()
Teste si le joueur est à 1 point à la fin de la manche.
Definition: darts.cpp:414
void nouvelleManche()
signal émis quand on change de manche
void calculerMoyenneVolees()
Calcule la moyenne des volées de chaque joueur.
Definition: darts.cpp:427
void jouerSon(QString son)
signal émis pour Lancer un son
#define NB_FLECHETTE
Definition: darts.h:23
void controlerJoueurEliminer()
Change de joueur si le joueur actuel est éliminé
Definition: darts.cpp:391
void setManche(int manche)
Permets de mettre à jour le numéro de manche.
Definition: darts.cpp:165
void testerNombreJoueurRestand()
Teste s&#39;il reste qu&#39;un joueur n&#39;était pas éliminé
Definition: darts.cpp:494
void gererVoleeMax()
Teste la volée pour savoir si elle est supérieure à la volée Max.
Definition: darts.cpp:449

◆ gererMancheTournois()

void Darts::gererMancheTournois ( )
private

Permets de gérer le changement de manche en fonction des fléchettes de chaque joueur.

Définition à la ligne 687 du fichier darts.cpp.

Références calculerMoyenneVoleesTournois(), changementJoueurActifTournoi(), dernierJoueur, gererVoleeMax(), getManche(), jouerSon(), joueurActif, joueurs, NB_FLECHETTE, nouvelleManche(), pointVoleeEnCours, premierJoueur, setManche(), solution, et Solution::trouverSolution().

Référencé par testerImpactTournois().

688 {
689  if(joueurs[joueurActif].getFlechette() == 0) //fin de la volées du joueur
690  {
691  joueurs[joueurActif].setNbFlechette(NB_FLECHETTE);
692 
693  pointVoleeEnCours = 0;
694 
695  gererVoleeMax();
696  //testerSiJoueurEliminer(); /** @todo changer pour faire gagner l'autre joueur*/
697 
698  joueurs[joueurActif].addHistoriqueVolees((joueurs[joueurActif].getScoreManchePrecedente() - joueurs[joueurActif].getScore()));
699 
700  if((joueurs[joueurActif].getScoreManchePrecedente() - joueurs[joueurActif].getScore()) == 180)
701  emit jouerSon("180.wav");
702 
703  joueurs[joueurActif].setScoreManchePrecedente(joueurs[joueurActif].getScore());
704 
705  if(joueurActif == dernierJoueur) //equivalent a la fin de manche
706  {
708 
709  setManche(getManche() + 1);
712  emit nouvelleManche();
713  solution->trouverSolution(joueurs[joueurActif].getScore(),joueurs[joueurActif].getFlechette());
714  }
715  else
716  {
717  joueurActif++;
718 
720  solution->trouverSolution(joueurs[joueurActif].getScore(),joueurs[joueurActif].getFlechette());
721  }
722  }
723 }
Solution * solution
Association vers l&#39;objet solution.
Definition: darts.h:88
void trouverSolution(int s, int flechettes)
Méthode qui trouve la meilleure solution.
Definition: solution.cpp:296
int pointVoleeEnCours
contient le score de la Volées en cours
Definition: darts.h:100
int premierJoueur
contient le premier joueur du tournois a jouer
Definition: darts.h:101
int getManche() const
Retourne la manche.
Definition: darts.cpp:44
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void changementJoueurActifTournoi()
void nouvelleManche()
signal émis quand on change de manche
int dernierJoueur
contient le dernier joueur du tournois a jouer
Definition: darts.h:102
void jouerSon(QString son)
signal émis pour Lancer un son
#define NB_FLECHETTE
Definition: darts.h:23
void setManche(int manche)
Permets de mettre à jour le numéro de manche.
Definition: darts.cpp:165
void gererVoleeMax()
Teste la volée pour savoir si elle est supérieure à la volée Max.
Definition: darts.cpp:449
void calculerMoyenneVoleesTournois()
Calcule la moyenne des volées de chaque joueur pour le tournois.
Definition: darts.cpp:730

◆ gererVoleeMax()

void Darts::gererVoleeMax ( )
private

Teste la volée pour savoir si elle est supérieure à la volée Max.

Définition à la ligne 449 du fichier darts.cpp.

Références getVoleeMax(), joueurActif, joueurs, et setVoleeMax().

Référencé par enleverPointImpact(), gererManche(), gererMancheTournois(), testerImpact(), et testerImpactTournois().

450 {
451  if((joueurs[joueurActif].getScoreManchePrecedente() - joueurs[joueurActif].getScore()) > getVoleeMax())
452  {
453  setVoleeMax(joueurs[joueurActif].getScoreManchePrecedente() - joueurs[joueurActif].getScore());
454  }
455 }
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
void setVoleeMax(int voleeMax)
Permets de mettre à jour le volé max.
Definition: darts.cpp:154
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
int getVoleeMax() const
Retourne la volée max.
Definition: darts.cpp:77

◆ getDarts()

Darts* Darts::getDarts ( ) const

◆ getDernierJoueur()

int Darts::getDernierJoueur ( ) const

Retourne le dernier joueur a jouer.

Renvoie
int le dernier joueur a jouer

Définition à la ligne 121 du fichier darts.cpp.

Références dernierJoueur.

Référencé par Ihm::finirPartie(), Ihm::initialiserAffichageTournois(), Ihm::mettreAJourJoueurTournoi(), Ihm::mettreAJourMoyenneVoleeTournois(), et Ihm::mettreAJourScoreTournois().

122 {
123  return dernierJoueur;
124 }
int dernierJoueur
contient le dernier joueur du tournois a jouer
Definition: darts.h:102

◆ getJoueurActif()

int Darts::getJoueurActif ( ) const

Retourne le numéro du joueur actif.

Renvoie
int le numéro du joueur actif

Définition à la ligne 88 du fichier darts.cpp.

Références joueurActif.

Référencé par Ihm::mettreAJourJoueur(), Ihm::mettreAJourJoueurTournoi(), et Ihm::mettreAJourScore().

89 {
90  return joueurActif;
91 }
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93

◆ getListJoueur()

QList< Joueur > Darts::getListJoueur ( ) const

Retourne une liste des joueurs.

Renvoie
QList<Joueur> la liste des joueurs

Définition à la ligne 66 du fichier darts.cpp.

Références joueurs.

Référencé par Ihm::finirPartie(), Ihm::initialiserAffichageTournois(), Ihm::mettreAJourJoueur(), Ihm::mettreAJourJoueurTournoi(), Ihm::mettreAJourMoyenneVolee(), Ihm::mettreAJourMoyenneVoleeTournois(), Ihm::mettreAJourScore(), et Ihm::mettreAJourScoreTournois().

67 {
68  return joueurs;
69 }
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89

◆ getManche()

int Darts::getManche ( ) const

Retourne la manche.

Renvoie
int le numéro de manche

Définition à la ligne 44 du fichier darts.cpp.

Références manche.

Référencé par controlerJoueurEliminer(), gererManche(), gererMancheTournois(), Ihm::initialiserAffichageTournois(), et Ihm::mettreAJourManche().

45 {
46  return manche;
47 }
int manche
contient le numero de la manche actuel
Definition: darts.h:94

◆ getModeDeJeu()

QString Darts::getModeDeJeu ( ) const

Retourne le mode de jeu.

Renvoie
QString le mode de jeu

Définition à la ligne 132 du fichier darts.cpp.

Références ModeDeJeu.

Référencé par Ihm::afficherPartie(), et testerModeDeJeu().

133 {
134  return ModeDeJeu;
135 }
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98

◆ getNbVolees()

int Darts::getNbVolees ( ) const

Retourne le nombre de volées de la partie.

Renvoie
int le nombre de volées de la partie

Définition à la ligne 99 du fichier darts.cpp.

Références nbVolees.

Référencé par Ihm::finirPartie().

100 {
101  return nbVolees;
102 }
int nbVolees
contient le nombre de Volées de la partie en cours
Definition: darts.h:97

◆ getPointVolees()

int Darts::getPointVolees ( ) const

Retourne la manche.

Renvoie
int le nombre de point de la manche en cours

Définition à la ligne 55 du fichier darts.cpp.

Références pointVoleeEnCours.

Référencé par Ihm::mettreAJourMessageStatut().

56 {
57  return pointVoleeEnCours;
58 }
int pointVoleeEnCours
contient le score de la Volées en cours
Definition: darts.h:100

◆ getPremierJoueur()

int Darts::getPremierJoueur ( ) const

Retourne le premier Joueur a jouer.

Renvoie
int le premier Joueur a jouer

Définition à la ligne 110 du fichier darts.cpp.

Références premierJoueur.

Référencé par Ihm::finirPartie(), Ihm::initialiserAffichageTournois(), Ihm::mettreAJourJoueurTournoi(), Ihm::mettreAJourMoyenneVoleeTournois(), et Ihm::mettreAJourScoreTournois().

111 {
112  return premierJoueur;
113 }
int premierJoueur
contient le premier joueur du tournois a jouer
Definition: darts.h:101

◆ getSolution()

Solution * Darts::getSolution ( ) const

retourne l'objet solution

Renvoie
Solution* l'objet solution

Définition à la ligne 143 du fichier darts.cpp.

Références solution.

Référencé par Ihm::initialiserEvenements().

144 {
145  return solution;
146 }
Solution * solution
Association vers l&#39;objet solution.
Definition: darts.h:88

◆ getVoleeMax()

int Darts::getVoleeMax ( ) const

Retourne la volée max.

Renvoie
int la volée max

Définition à la ligne 77 du fichier darts.cpp.

Références voleeMax.

Référencé par arreterPartie(), enleverPointImpact(), gererVoleeMax(), testerImpact(), et testerImpactTournois().

78 {
79  return voleeMax;
80 }
int voleeMax
contient la volées Max
Definition: darts.h:96

◆ initialiserFinTournois()

void Darts::initialiserFinTournois ( )
private

methode qui gere la fin du tournois

Définition à la ligne 839 du fichier darts.cpp.

Références finTournois(), joueurActif, joueurs, joueursTournoisEliminer, et NomTournois.

Référencé par gererFinPartieTournois().

840 {
841  QList<Joueur> joueurTournois;
842 
843  for(int i = 0 ; i < joueurs.size(); i++)
844  {
845  joueurTournois.push_back(joueurs[i]);
846  }
847 
848  for(int i = 0 ; i < joueursTournoisEliminer.size(); i++)
849  {
850  joueurTournois.push_back(joueursTournoisEliminer[i]);
851  }
852 
853  emit finTournois(joueurs[joueurActif].getNom(),NomTournois,joueurTournois);
854 }
QList< Joueur > joueursTournoisEliminer
contient des objets joueurs eliminer pendant le tournois
Definition: darts.h:90
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
QString NomTournois
contient le nom du tournois
Definition: darts.h:99
void finTournois(QString, QString, QList< Joueur >)

◆ initialiserPartie()

void Darts::initialiserPartie ( QStringList  joueurList,
QString  modeJeu 
)

Initialise la partie.

Paramètres
joueurListQStringList
modeJeuQString

Définition à la ligne 177 du fichier darts.cpp.

Références afficherNouvellePartie(), changerEtatPartie(), joueurActif, joueurs, ModeDeJeu, NB_FLECHETTE, nbJoueur, reinitialiserPartie(), solution, et Solution::trouverSolution().

Référencé par Communication::extraireParametresTrameStart().

178 {
179  nbJoueur = joueurList.size() - 1;
180  ModeDeJeu = modeJeu;
181  qDebug() << Q_FUNC_INFO << "nbJoueur " << nbJoueur << " | Mode De Jeu " << ModeDeJeu;
182 
183  if(ModeDeJeu.toInt() >= 101 && ModeDeJeu.toInt() <= 1001)
184  {
185  for(int i = 1; i < joueurList.size() ; i++)
186  {
187  Joueur player(joueurList.at(i), ModeDeJeu.toInt(), NB_FLECHETTE);
188  joueurs.push_back(player);
189  }
190  emit afficherNouvellePartie();
191  emit changerEtatPartie();
192  }
193  else if(ModeDeJeu.contains("_DOUBLE_OUT") && (ModeDeJeu.section("_",0,0).toInt() >= 101 && ModeDeJeu.section("_",0,0).toInt() <= 1001))
194  {
195  for(int i = 1; i < joueurList.size() ; i++)
196  {
197  Joueur player(joueurList.at(i), ModeDeJeu.section("_",0,0).toInt(), NB_FLECHETTE);
198  joueurs.push_back(player);
199  }
200  emit afficherNouvellePartie();
201  emit changerEtatPartie();
202  }
203  else
204  {
205  qDebug() << Q_FUNC_INFO << "Erreur Mode De Jeu : " << ModeDeJeu;
207  return;
208  }
209  solution->trouverSolution(joueurs[joueurActif].getScore(),joueurs[joueurActif].getFlechette());
210 }
Solution * solution
Association vers l&#39;objet solution.
Definition: darts.h:88
void trouverSolution(int s, int flechettes)
Méthode qui trouve la meilleure solution.
Definition: solution.cpp:296
int nbJoueur
contient le nombre de joueur
Definition: darts.h:92
void afficherNouvellePartie()
signal émis quand il y a une nouvelle partie
Déclaration de la classe Joueur (Module Ecran-DARTS)
Definition: joueur.h:21
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98
#define NB_FLECHETTE
Definition: darts.h:23
void changerEtatPartie()
signal émis pour changer l&#39;etat de la partie
void reinitialiserPartie()
Méthode qui permet de remettre a zero les differents attribut et conteneur pour une nouvelle partie...
Definition: darts.cpp:217

◆ jouerSon

void Darts::jouerSon ( QString  son)
signal

signal émis pour Lancer un son

Référencé par enleverPointImpact(), gererManche(), gererMancheTournois(), et testerPoint().

◆ miseAJourMoyenneVolee

void Darts::miseAJourMoyenneVolee ( )
signal

signal émis pour mettre à jour la moyenne des volées

Référencé par calculerMoyenneVolees().

◆ miseAJourMoyenneVoleeTournois

void Darts::miseAJourMoyenneVoleeTournois ( )
signal

signal émis pour mettre a jour la moyenne des Volées en mode tournois

Référencé par calculerMoyenneVoleesTournois().

◆ miseAJourPoint

void Darts::miseAJourPoint ( )
signal

signal émis pour mettre à jour les points des joueurs

Référencé par receptionnerImpact().

◆ miseAJourPointTournois

void Darts::miseAJourPointTournois ( )
signal

signal émis pour mettre a jour les points du tournois

Référencé par receptionnerImpactTournois().

◆ nouvelImpact

void Darts::nouvelImpact ( int  ,
int  ,
int   
)
signal

signal émis quand il y a un nouvel Impact

Référencé par receptionnerImpact(), et receptionnerImpactTournois().

◆ nouvelleManche

void Darts::nouvelleManche ( )
signal

signal émis quand on change de manche

Référencé par controlerJoueurEliminer(), gererManche(), et gererMancheTournois().

◆ receptionnerImpact()

void Darts::receptionnerImpact ( int  typePoint,
int  point 
)

Permets de traiter la réception d'impact.

Paramètres
typePoint
point

Définition à la ligne 261 du fichier darts.cpp.

Références actualiserCible(), calculerPoints(), joueurActif, joueurs, miseAJourPoint(), NB_FLECHETTE, nouvelImpact(), pointLancer, pointVoleeEnCours, testerImpact(), et testerPoint().

Référencé par Communication::decomposerTrame().

262 {
263  calculerPoints(point, typePoint);
264 
265  testerPoint(typePoint, point);
266 
268 
269  if(joueurs[joueurActif].getFlechette() == NB_FLECHETTE)
270  emit actualiserCible();
271 
272  qDebug() << Q_FUNC_INFO << joueurs[joueurActif].getNom() << " SCORE : " <<joueurs[joueurActif].getScore() - pointLancer << endl;
273 
274  emit nouvelImpact(typePoint, point, pointLancer);
275  joueurs[joueurActif].setScore(joueurs[joueurActif].getScore() - pointLancer);
276  testerImpact(typePoint);
277  emit miseAJourPoint();
278 }
int pointVoleeEnCours
contient le score de la Volées en cours
Definition: darts.h:100
void actualiserCible()
signal émis pour changer actualiser l&#39;affichage de la cible
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void testerPoint(int typePoint, int point)
Méthode qui teste les Impact pour savoir quel son jouer.
Definition: darts.cpp:242
#define NB_FLECHETTE
Definition: darts.h:23
void nouvelImpact(int, int, int)
signal émis quand il y a un nouvel Impact
void testerImpact(int typePoint)
Teste si le joueur a gagné
Definition: darts.cpp:286
void calculerPoints(int point, int typePoint)
Teste s&#39;il reste qu&#39;un joueur n&#39;était pas éliminé
Definition: darts.cpp:519
int pointLancer
contient les point associer l&#39;impact de la fleche
Definition: darts.h:95
void miseAJourPoint()
signal émis pour mettre à jour les points des joueurs

◆ receptionnerImpactTournois()

void Darts::receptionnerImpactTournois ( int  typePoint,
int  point 
)

methode qui gere le deroulement de la partie tournois

Paramètres
typePoint
point

Définition à la ligne 629 du fichier darts.cpp.

Références actualiserCible(), calculerPoints(), joueurActif, joueurs, miseAJourPointTournois(), NB_FLECHETTE, nouvelImpact(), pointLancer, pointVoleeEnCours, testerImpactTournois(), et testerPoint().

Référencé par Communication::decomposerTrame().

630 {
631  calculerPoints(point, typePoint);
632 
633  testerPoint(typePoint, point);
634 
636 
637  if(joueurs[joueurActif].getFlechette() == NB_FLECHETTE)
638  emit actualiserCible();
639 
640  emit nouvelImpact(typePoint, point, pointLancer);
641 
642  joueurs[joueurActif].setScore(joueurs[joueurActif].getScore() - pointLancer);
643 
644  testerImpactTournois(typePoint);
645  emit miseAJourPointTournois();
646 }
int pointVoleeEnCours
contient le score de la Volées en cours
Definition: darts.h:100
void actualiserCible()
signal émis pour changer actualiser l&#39;affichage de la cible
void testerImpactTournois(int typePoint)
teste l&#39;impact pour le mode tournois
Definition: darts.cpp:654
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void testerPoint(int typePoint, int point)
Méthode qui teste les Impact pour savoir quel son jouer.
Definition: darts.cpp:242
#define NB_FLECHETTE
Definition: darts.h:23
void miseAJourPointTournois()
signal émis pour mettre a jour les points du tournois
void nouvelImpact(int, int, int)
signal émis quand il y a un nouvel Impact
void calculerPoints(int point, int typePoint)
Teste s&#39;il reste qu&#39;un joueur n&#39;était pas éliminé
Definition: darts.cpp:519
int pointLancer
contient les point associer l&#39;impact de la fleche
Definition: darts.h:95

◆ reinitialiserPartie()

void Darts::reinitialiserPartie ( )

Méthode qui permet de remettre a zero les differents attribut et conteneur pour une nouvelle partie.

Définition à la ligne 217 du fichier darts.cpp.

Références dernierJoueur, joueur, joueurActif, joueurs, joueursTournoisEliminer, manche, ModeDeJeu, nbJoueur, nbVolees, pointLancer, pointVoleeEnCours, premierJoueur, et voleeMax.

Référencé par configurationTournois(), Communication::decomposerTrame(), Communication::decomposerTrameTournois(), initialiserPartie(), et Communication::reamorcerPartie().

218 {
219  joueurs.clear();
220  joueur.clear();
221  joueursTournoisEliminer.clear();
222  premierJoueur = 0;
223  dernierJoueur = 1;
224 
225  ModeDeJeu = "";
226  nbJoueur = 0;
227  joueurActif = 0;
228  manche = 1;
229  pointLancer = 0;
230  nbVolees = 0;
231  voleeMax = 0;
232  pointVoleeEnCours = 0;
233 }
int pointVoleeEnCours
contient le score de la Volées en cours
Definition: darts.h:100
int premierJoueur
contient le premier joueur du tournois a jouer
Definition: darts.h:101
QList< Joueur > joueursTournoisEliminer
contient des objets joueurs eliminer pendant le tournois
Definition: darts.h:90
int voleeMax
contient la volées Max
Definition: darts.h:96
int nbJoueur
contient le nombre de joueur
Definition: darts.h:92
int manche
contient le numero de la manche actuel
Definition: darts.h:94
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98
int dernierJoueur
contient le dernier joueur du tournois a jouer
Definition: darts.h:102
int nbVolees
contient le nombre de Volées de la partie en cours
Definition: darts.h:97
QStringList joueur
contient les noms des differents joueur
Definition: darts.h:91
int pointLancer
contient les point associer l&#39;impact de la fleche
Definition: darts.h:95

◆ setManche()

void Darts::setManche ( int  manche)

Permets de mettre à jour le numéro de manche.

Paramètres
manchele numéro de manche (int)

Définition à la ligne 165 du fichier darts.cpp.

Références manche.

Référencé par controlerJoueurEliminer(), gererFinPartieTournois(), gererManche(), et gererMancheTournois().

166 {
167  this->manche = manche;
168 }
int manche
contient le numero de la manche actuel
Definition: darts.h:94

◆ setVoleeMax()

void Darts::setVoleeMax ( int  voleeMax)

Permets de mettre à jour le volé max.

Paramètres
voleeMaxla volée max(int)

Définition à la ligne 154 du fichier darts.cpp.

Références voleeMax.

Référencé par gererVoleeMax().

155 {
156  this->voleeMax = voleeMax;
157 }
int voleeMax
contient la volées Max
Definition: darts.h:96

◆ testerImpact()

void Darts::testerImpact ( int  typePoint)
private

Teste si le joueur a gagné

Paramètres
typePoint

Définition à la ligne 286 du fichier darts.cpp.

Références DOUBLE_POINT, enleverPointImpact(), etatPartieFini(), finPartie(), gererManche(), gererVoleeMax(), getVoleeMax(), joueurActif, joueurs, ModeDeJeu, et nbVolees.

Référencé par receptionnerImpact().

287 {
288  if(joueurs[joueurActif].getScore() == 0 && (typePoint == DOUBLE_POINT) && (ModeDeJeu.contains("_DOUBLE_OUT"))) //fin avec double
289  {
290  gererVoleeMax();
291  nbVolees++;
292  emit finPartie("↢ Winner " + joueurs[joueurActif].getNom() + " ↣", getVoleeMax(), false);
293  emit etatPartieFini();
294  }
295  else if(joueurs[joueurActif].getScore() == 0 && !ModeDeJeu.contains("_DOUBLE_OUT")) //fin sans double
296  {
297  gererVoleeMax();
298  nbVolees++;
299  emit finPartie("↢ Winner " + joueurs[joueurActif].getNom() + " ↣" , getVoleeMax(), false);
300  emit etatPartieFini();
301  }
302  else
303  {
305  gererManche();
306  }
307 }
void enleverPointImpact()
Met à jours le score du joueur.
Definition: darts.cpp:314
void gererManche()
Permets de gérer le changement de manche en fonction des fléchettes de chaque joueur.
Definition: darts.cpp:343
void etatPartieFini()
signal émis pour mettre l&#39;etat de la partie en fin
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void finPartie(QString, int, bool)
signal émis quand c&#39;est la fin de la partie
int getVoleeMax() const
Retourne la volée max.
Definition: darts.cpp:77
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98
int nbVolees
contient le nombre de Volées de la partie en cours
Definition: darts.h:97
#define DOUBLE_POINT
Definition: darts.h:19
void gererVoleeMax()
Teste la volée pour savoir si elle est supérieure à la volée Max.
Definition: darts.cpp:449

◆ testerImpactTournois()

void Darts::testerImpactTournois ( int  typePoint)
private

teste l'impact pour le mode tournois

Paramètres
typePoint

Définition à la ligne 654 du fichier darts.cpp.

Références afficherInfoTournois(), DOUBLE_POINT, enleverPointImpact(), etatPartieAttenteTournois(), finPartie(), gererFinPartieTournois(), gererMancheTournois(), gererVoleeMax(), getVoleeMax(), joueurActif, joueurs, ModeDeJeu, et nbVolees.

Référencé par receptionnerImpactTournois().

655 {
656  if(joueurs[joueurActif].getScore() == 0 && (typePoint == DOUBLE_POINT) && (ModeDeJeu.contains("_DOUBLE_OUT"))) //fin avec double
657  {
658  gererVoleeMax();
659  nbVolees++;
660  emit afficherInfoTournois();
661  emit finPartie("↢ " + joueurs[joueurActif].getNom() +" Winner de la manche" +" ↣" , getVoleeMax(), true);
664  }
665  else if(joueurs[joueurActif].getScore() == 0 && !ModeDeJeu.contains("_DOUBLE_OUT")) //fin sans double
666  {
667  gererVoleeMax();
668  nbVolees++;
669  emit afficherInfoTournois();
670  emit finPartie("↢ " + joueurs[joueurActif].getNom() +" Winner de la manche" +" ↣" , getVoleeMax(), true);
673  }
674  else
675  {
678  }
679 }
void enleverPointImpact()
Met à jours le score du joueur.
Definition: darts.cpp:314
void gererMancheTournois()
Permets de gérer le changement de manche en fonction des fléchettes de chaque joueur.
Definition: darts.cpp:687
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
void gererFinPartieTournois()
methode qui gere le deroulement en fin de manche
Definition: darts.cpp:752
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void finPartie(QString, int, bool)
signal émis quand c&#39;est la fin de la partie
void afficherInfoTournois()
int getVoleeMax() const
Retourne la volée max.
Definition: darts.cpp:77
QString ModeDeJeu
contient le mode de jeu en cours
Definition: darts.h:98
int nbVolees
contient le nombre de Volées de la partie en cours
Definition: darts.h:97
#define DOUBLE_POINT
Definition: darts.h:19
void gererVoleeMax()
Teste la volée pour savoir si elle est supérieure à la volée Max.
Definition: darts.cpp:449
void etatPartieAttenteTournois()

◆ testerModeDeJeu()

QString Darts::testerModeDeJeu ( )

Méthode qui teste le mode de jeu.

Renvoie
QString

Définition à la ligne 547 du fichier darts.cpp.

Références getModeDeJeu().

Référencé par Communication::extraireParametresTrameRegle(), et Communication::extraireParametresTrameStart().

548 {
549  QString regle ="";
550 
551  if(getModeDeJeu().contains("DOUBLE_OUT"))
552  {
553  regle = "DOUBLE_OUT";
554  }
555  else
556  {
557  regle = "SANS_DOUBLE_OUT";
558  }
559  return regle;
560 }
QString getModeDeJeu() const
Retourne le mode de jeu.
Definition: darts.cpp:132

◆ testerNombreJoueurRestand()

void Darts::testerNombreJoueurRestand ( )
private

Teste s'il reste qu'un joueur n'était pas éliminé

Définition à la ligne 494 du fichier darts.cpp.

Références arreterPartie(), et joueurs.

Référencé par gererManche().

495 {
496  int eliminer = 0;
497 
498  for(int i = 0; i <= joueurs.size() - 1; i++)
499  {
500  if(joueurs[i].getEliminer())
501  {
502  eliminer++;
503  }
504  }
505 
506  if(eliminer == joueurs.size() - 1 && joueurs.size() != 1)
507  {
508  arreterPartie();
509  }
510 }
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89
void arreterPartie()
arrête la partie
Definition: darts.cpp:462

◆ testerPoint()

void Darts::testerPoint ( int  typePoint,
int  point 
)
private

Méthode qui teste les Impact pour savoir quel son jouer.

Paramètres
typePoint
point

Définition à la ligne 242 du fichier darts.cpp.

Références BULL, DOUBLE_POINT, jouerSon(), et ZERO_POINT.

Référencé par receptionnerImpact(), et receptionnerImpactTournois().

243 {
244  if(typePoint == DOUBLE_POINT && point == BULL)
245  {
246  jouerSon("D25.wav");
247  }
248  else if(typePoint == ZERO_POINT)
249  {
250  jouerSon("out.wav");
251  }
252 }
#define ZERO_POINT
Definition: darts.h:21
void jouerSon(QString son)
signal émis pour Lancer un son
#define BULL
Definition: darts.h:22
#define DOUBLE_POINT
Definition: darts.h:19

◆ testerSiJoueurEliminer()

void Darts::testerSiJoueurEliminer ( )
private

Teste si le joueur est à 1 point à la fin de la manche.

Définition à la ligne 414 du fichier darts.cpp.

Références joueurActif, et joueurs.

Référencé par gererManche().

415 {
416  if(joueurs[joueurActif].getScore() == 1) //joueur eliminé si tomber à 1 point
417  {
418  joueurs[joueurActif].setEliminer(true);
419  }
420 }
int joueurActif
contient le numero du joueur en train de jouer
Definition: darts.h:93
QList< Joueur > joueurs
contient des objets joueurs
Definition: darts.h:89

◆ voleeAnnulee

void Darts::voleeAnnulee ( )
signal

signal émis quand la volées est annulé

Référencé par enleverPointImpact().

Documentation des données membres

◆ dernierJoueur

int Darts::dernierJoueur
private

contient le dernier joueur du tournois a jouer

Définition à la ligne 102 du fichier darts.h.

Référencé par calculerMoyenneVoleesTournois(), configurationTournois(), gererFinPartieTournois(), gererMancheTournois(), getDernierJoueur(), et reinitialiserPartie().

◆ joueur

QStringList Darts::joueur
private

contient les noms des differents joueur

Définition à la ligne 91 du fichier darts.h.

Référencé par reinitialiserPartie().

◆ joueurActif

◆ joueurs

◆ joueursTournoisEliminer

QList<Joueur> Darts::joueursTournoisEliminer
private

contient des objets joueurs eliminer pendant le tournois

Définition à la ligne 90 du fichier darts.h.

Référencé par gererFinPartieTournois(), initialiserFinTournois(), et reinitialiserPartie().

◆ manche

int Darts::manche
private

contient le numero de la manche actuel

Définition à la ligne 94 du fichier darts.h.

Référencé par getManche(), reinitialiserPartie(), et setManche().

◆ ModeDeJeu

QString Darts::ModeDeJeu
private

contient le mode de jeu en cours

Définition à la ligne 98 du fichier darts.h.

Référencé par configurationTournois(), gererFinPartieTournois(), getModeDeJeu(), initialiserPartie(), reinitialiserPartie(), testerImpact(), et testerImpactTournois().

◆ nbJoueur

int Darts::nbJoueur
private

contient le nombre de joueur

Définition à la ligne 92 du fichier darts.h.

Référencé par configurationTournois(), controlerJoueurEliminer(), gererManche(), initialiserPartie(), et reinitialiserPartie().

◆ nbVolees

int Darts::nbVolees
private

contient le nombre de Volées de la partie en cours

Définition à la ligne 97 du fichier darts.h.

Référencé par enleverPointImpact(), gererFinPartieTournois(), getNbVolees(), reinitialiserPartie(), testerImpact(), et testerImpactTournois().

◆ NomTournois

QString Darts::NomTournois
private

contient le nom du tournois

Définition à la ligne 99 du fichier darts.h.

Référencé par configurationTournois(), gererFinPartieTournois(), et initialiserFinTournois().

◆ pointLancer

int Darts::pointLancer
private

contient les point associer l'impact de la fleche

Définition à la ligne 95 du fichier darts.h.

Référencé par calculerPoints(), receptionnerImpact(), receptionnerImpactTournois(), et reinitialiserPartie().

◆ pointVoleeEnCours

int Darts::pointVoleeEnCours
private

contient le score de la Volées en cours

Définition à la ligne 100 du fichier darts.h.

Référencé par gererManche(), gererMancheTournois(), getPointVolees(), receptionnerImpact(), receptionnerImpactTournois(), et reinitialiserPartie().

◆ premierJoueur

int Darts::premierJoueur
private

contient le premier joueur du tournois a jouer

Définition à la ligne 101 du fichier darts.h.

Référencé par calculerMoyenneVoleesTournois(), configurationTournois(), gererFinPartieTournois(), gererMancheTournois(), getPremierJoueur(), et reinitialiserPartie().

◆ solution

Solution* Darts::solution
private

Association vers l'objet solution.

Définition à la ligne 88 du fichier darts.h.

Référencé par configurationTournois(), Darts(), enleverPointImpact(), gererManche(), gererMancheTournois(), getSolution(), et initialiserPartie().

◆ voleeMax

int Darts::voleeMax
private

contient la volées Max

Définition à la ligne 96 du fichier darts.h.

Référencé par getVoleeMax(), reinitialiserPartie(), et setVoleeMax().


La documentation de cette classe a été générée à partir des fichiers suivants :