Ecran-DARTS  1.1
BTS SNIR LaSalle Avignon 2021
ihmDarts.cpp
Aller à la documentation de ce fichier.
1 #include "ihmDarts.h"
2 #include "statistiques.h"
3 #include "communication.h"
4 #include "partie.h"
5 #include <QDebug>
6 
23 IhmDARTS::IhmDARTS(QWidget *parent) : QWidget(parent), joueurCourant(0), nbJoueurs(NB_JOUEURS_MAX)
24 {
25  qDebug() << Q_FUNC_INFO;
26 
27  // Instancier les objets de l'application
28  statistiques = new Statistiques(this);
29  communication = new Communication(this);
30  partie = new Partie(this);
31  // Créer et afficher l'IHM
32  creerWidgets();
34  placerWidgets();
35 
36  // Sélectionner l'écran à afficher au démarrage
38 
39  // Initialiser les connexions signal/slot
41 
42  // Créer les raccourcis Quitter et Changer d'écrans (mode debug seulement)
44 
45  // Démarrer la communication Bluetooth
46  #ifdef AVEC_BLUETOOTH
48  #endif
49 
50  #ifdef PLEIN_ECRAN
51  showFullScreen();
52  //showMaximized();
53  #endif
54 }
55 
62 {
63  qDebug() << Q_FUNC_INFO;
64 }
65 
72 void IhmDARTS::selectionnerEcran(int indexEcran)
73 {
74  if(indexEcran >= ECRAN_ACCUEIL && indexEcran <= ECRAN_FIN)
75  ecranDARTS->setCurrentIndex(indexEcran);
76 }
77 
84 {
85  int ecranCourant = ecranDARTS->currentIndex();
86  int ecranSuivant = (ecranCourant+1)%NB_ECRANS;
87  ecranDARTS->setCurrentIndex(ecranSuivant);
88 }
89 
96 {
97  int ecranCourant = ecranDARTS->currentIndex();
98  int ecranPrecedent = (ecranCourant-1)%NB_ECRANS;
99  if(ecranPrecedent == -1)
100  ecranPrecedent = NB_ECRANS-1;
101  ecranDARTS->setCurrentIndex(ecranPrecedent);
102 }
103 
110 {
111  labelMessageAccueil->setText("En attente de connexion ...");
113 }
114 
121 {
122  if(partieTerminee == true)
123  {
124  labelMessageAccueil->setText("En attente de début de partie ...");
126  }
127  }
128 
135 {
137 }
138 
145 {
146  // Création des différents écrans
147  ecranAccueil = new QWidget(this);
148  ecranPartie = new QWidget(this);
149  ecranFin = new QWidget(this);
150  ecranDARTS = new QStackedWidget(this);
151 
152  // Widgets de l'écran d'acceuil
153  labelNomApplication = new QLabel(this);
154  labelMessageAccueil = new QLabel(this);
155  labelIconeDarts = new QLabel(this);
156  labelIconeDartsEcranFin = new QLabel(this);
157 
158  // Widgets de l'écran Partie
159  labelTypeDeJeu = new QLabel(this);
160  for(int i=0;i<NB_JOUEURS_MAX;++i)
161  {
162  labelsNomJoueur.push_back(new QLabel(this));
163  labelsVoleeJoueur.push_back(new QLabel(this));
164  labelsScoreJoueur.push_back(new QLabel(this));
165  labelIconeJoueur.push_back(new QLabel(this));
166  }
167 
168  // Widgets de l'écran de fin
169  labelMessageFin = new QLabel(this);
170  labelGagnant = new QLabel(this);
174  //labelNbManchesGagnerDeChaqueJoueur = new QLabel(this);
175  //labelPlusHauteVolee = new QLabel(this);
176  //labelMoyenneVoleesDeChaqueJoueur = new QLabel(this);
177 }
178 
185 {
186  // Pour tester des polices
187  // Liste des polices connues du système
188  //QFontDatabase fontDatabase;
189  //qDebug() << fontDatabase.families();
190 
191  // Personnalisation
192  setStyleSheet("QLabel {font: bold; border: 5px solid rgb(37, 67, 86); border-width: 5px; border-radius: 15px; padding: 1em;}");
193  ecranAccueil->setStyleSheet("background-color: black;");
194  ecranPartie->setStyleSheet("background-color: #1c74bc;");
195  ecranFin->setStyleSheet("background-color: black;");
196  // Widgets de l'écran Partie
197  QFont policeTypeDeJeu("Lato", TAILLE_POLICE_TYPE_JEU);
198  QFont policeVolee("Lato", TAILLE_POLICE_VOLEE);
199  QFont policeScore("Lato", TAILLE_POLICE_SCORE);
200  QFont policeNomJoueur("Lato", TAILLE_POLICE_NOM_JOUEUR);
201  QPixmap vierge(":vierge");
202  QPixmap tireur(":icon-arrow-blue-right");
203 
204  labelTypeDeJeu->setText(""); // Exemple : 501 DOUBLE OUT
205  labelTypeDeJeu->setFont(policeTypeDeJeu);
206  labelTypeDeJeu->setStyleSheet("color: #f7f7f7; background-color: #254356;");
207  labelTypeDeJeu->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
209 
210  for(int i=0;i<NB_JOUEURS_MAX;++i)
211  {
212  labelsNomJoueur.at(i)->setText("");
213 
218 
223 
224 
225  labelIconeJoueur.at(i)->setText(""); // pas de texte, on placera une image
226  labelIconeJoueur.at(i)->setPixmap(vierge);
227  labelsVoleeJoueur.at(i)->setText(""); // Exemple : T20 X 14
228  labelsScoreJoueur.at(i)->setText(""); // Exemple : 501
229 
230  labelsNomJoueur.at(i)->setStyleSheet("background-color: #e7e7e7; color: #254356;");
231  //labelIconeJoueur.at(i)->setStyleSheet("background-color: #e7e7e7; color: #254356;");
232  labelIconeJoueur.at(i)->setStyleSheet("background-color: #1c74bc; border: 5px solid rgb(28, 116, 188); border-width: 5px; border-radius: 15px; padding: 0em;");
233  labelsVoleeJoueur.at(i)->setStyleSheet("background-color: #e7e7e7; color: #702a1e;");
234  labelsScoreJoueur.at(i)->setStyleSheet("background-color: #e7e7e7; color: #1c74bc;");
235 
236  labelsNomJoueur.at(i)->setFont(policeNomJoueur);
237  labelsVoleeJoueur.at(i)->setFont(policeVolee);
238  labelsScoreJoueur.at(i)->setFont(policeScore);
239 
240  labelsNomJoueur.at(i)->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
241  labelIconeJoueur.at(i)->setAlignment(Qt::AlignCenter);
242  labelsVoleeJoueur.at(i)->setAlignment(Qt::AlignCenter);
243  labelsScoreJoueur.at(i)->setAlignment(Qt::AlignCenter);
244 
245  // Widgets de l'écran d'accueille
246  labelIconeDarts->setStyleSheet("background-color: #1c74bc;");
247  // Widgets de l'écran fin
248  labelIconeDartsEcranFin->setStyleSheet("background-color: #1c74bc;");
249  }
250 
251  // Premier joueur à joueur
252  labelIconeJoueur.at(0)->setPixmap(tireur);
253 
254  // Cacher les affichages de tous les joueurs créés
255  for(int i=0;i<NB_JOUEURS_MAX;++i)
256  {
257  // Il faudra décommenter cette ligne
258  //cacherJoueur(i);
259  }
260 
261  // Widgets de l'écran d'acceuil
262  QFont policeNomApplication("Lato", POLICE_NOM_APPLICATION);
263  QFont policeMessageAccueil("FreeSerif", POLICE_MESSAGE_ACCUEIL);
264  QPixmap darts(":/icones/logo.png");
265  labelNomApplication->setText("Darts");
266  labelNomApplication->setStyleSheet("color: #1c74bc; font: bold; border: 5px solid rgb(0, 0, 0); border-width: 5px; border-radius: 15px;");
267  labelNomApplication->setAlignment(Qt::AlignCenter);
268  labelNomApplication->setFont(policeNomApplication);
269  labelMessageAccueil->setText("En attente de connexion ...");
270  labelMessageAccueil->setStyleSheet("color: #1c74bc; font: italic; border: 5px solid rgb(0, 0, 0); border-width: 5px; border-radius: 15px;");
271  labelMessageAccueil->setAlignment(Qt::AlignCenter);
272  labelMessageAccueil->setFont(policeMessageAccueil);
273  labelIconeDarts->setPixmap(darts);
274  labelIconeDarts->setAlignment(Qt::AlignCenter);
275 
276 
277  // Widgets de l'écran de fin
278  QFont policeMessageFin("Lato", POLICE_MESSAGE_FIN);
279  QFont policeGagnant("FreeSerif", POLICE_GAGNANT);
280  labelMessageFin->setText("Fin");
281  labelMessageFin->setStyleSheet("color: #1c74bc; font: bold; border: 2px solid rgb(0, 0, 0); border-width: 2px; border-radius: 15px;");
282  labelMessageFin->setAlignment(Qt::AlignCenter);
283  labelMessageFin->setFont(policeMessageFin);
285  labelGagnant->setText("Le gagnant :");
286  labelGagnant->setStyleSheet("color: #1c74bc; font: italic; border: 5px solid rgb(0, 0, 0); border-width: 5px; border-radius: 15px;");
287  labelGagnant->setAlignment(Qt::AlignCenter);
288  labelGagnant->setFont(policeGagnant);
289  labelIconeDartsEcranFin->setPixmap(darts);
290  labelIconeDartsEcranFin->setAlignment(Qt::AlignCenter);
291 }
292 
300 void IhmDARTS::fixerLargeurLabel(QLabel *label, int proportion)
301 {
302  label->setMinimumWidth(qApp->desktop()->screen()->width() * double(proportion)/100.);
303  label->setMaximumWidth(qApp->desktop()->screen()->width() * double(proportion)/100.);
304 }
305 
313 void IhmDARTS::fixerHauteurLabel(QLabel *label, int proportion)
314 {
315  label->setMinimumHeight(qApp->desktop()->screen()->height() * double(proportion)/100.);
316  label->setMaximumHeight(qApp->desktop()->screen()->height() * double(proportion)/100.);
317 }
318 
325 void IhmDARTS::montrerJoueur(int indexJoueur)
326 {
327  if(indexJoueur <= NB_JOUEURS_MAX || indexJoueur <= labelsNomJoueur.size())
328  return;
329  labelsNomJoueur.at(indexJoueur)->show();
330  labelsVoleeJoueur.at(indexJoueur)->show();
331  labelsScoreJoueur.at(indexJoueur)->show();
332  labelIconeJoueur.at(indexJoueur)->show();
333 }
334 
341 void IhmDARTS::cacherJoueur(int indexJoueur)
342 {
343  if(indexJoueur >= NB_JOUEURS_MAX || indexJoueur >= labelsNomJoueur.size())
344  return;
345  labelsNomJoueur.at(indexJoueur)->hide();
346  labelsVoleeJoueur.at(indexJoueur)->hide();
347  labelsScoreJoueur.at(indexJoueur)->hide();
348  labelIconeJoueur.at(indexJoueur)->hide();
349 }
350 
357 {
358  // Cacher les joueurs en plus
359  for(int i=this->nbJoueurs;i<NB_JOUEURS_MAX;++i)
360  {
361  cacherJoueur(i);
362  }
363 }
364 
371 {
372  ecranDARTS->addWidget(ecranAccueil);
373  ecranDARTS->addWidget(ecranPartie);
374  ecranDARTS->addWidget(ecranFin);
375 
379 
380  QVBoxLayout *mainLayout = new QVBoxLayout;
381  mainLayout->addWidget(ecranDARTS);
382  setLayout(mainLayout);
383 }
384 
391 {
392  QHBoxLayout *hLayout1 = new QHBoxLayout;
393  QHBoxLayout *hLayout2 = new QHBoxLayout;
394  QHBoxLayout *hLayout3 = new QHBoxLayout;
395 
396  QVBoxLayout *mainLayoutEcranAccueil = new QVBoxLayout;
397 
398  hLayout1->addWidget(labelNomApplication);
399  hLayout2->addWidget(labelIconeDarts);
400  hLayout3->addWidget(labelMessageAccueil);
401 
402  mainLayoutEcranAccueil->addLayout(hLayout1);
403  mainLayoutEcranAccueil->addLayout(hLayout2);
404  mainLayoutEcranAccueil->addLayout(hLayout3);
405 
406  ecranAccueil->setLayout(mainLayoutEcranAccueil);
409 
410 }
411 
418 {
419  QHBoxLayout *hLayoutTypeDeJeu = new QHBoxLayout;
420  QVBoxLayout *mainLayoutEcranPartie = new QVBoxLayout;
421 
422  hLayoutTypeDeJeu->addWidget(labelTypeDeJeu);
423  mainLayoutEcranPartie->addLayout(hLayoutTypeDeJeu);
424 
425  for(int i=0;i<NB_JOUEURS_MAX;++i)
426  {
427  QHBoxLayout *hLayoutJoueur = new QHBoxLayout;
428  hLayoutJoueur->addWidget(labelsNomJoueur.at(i));
429  hLayoutJoueur->addStretch();
430  hLayoutJoueur->addWidget(labelIconeJoueur.at(i));
431  hLayoutJoueur->addWidget(labelsVoleeJoueur.at(i));
432  hLayoutJoueur->addWidget(labelsScoreJoueur.at(i));
433 
434  mainLayoutEcranPartie->addLayout(hLayoutJoueur);
435  }
436 
437  ecranPartie->setLayout(mainLayoutEcranPartie);
438 }
439 
446 {
447  QHBoxLayout *hLayout1 = new QHBoxLayout;
448  QHBoxLayout *hLayout2 = new QHBoxLayout;
449  QHBoxLayout *hLayout3 = new QHBoxLayout;
450  QVBoxLayout *vLayout1 = new QVBoxLayout;
451 
452  QVBoxLayout *mainLayoutEcranFin = new QVBoxLayout;
453 
454  vLayout1->addWidget(labelGagnant);
455  hLayout1->addWidget(labelMessageFin);
456  hLayout2->addWidget(labelIconeDartsEcranFin);
457  hLayout3->addWidget(labelGagnant);
458 
459  mainLayoutEcranFin->addLayout(hLayout1);
460  mainLayoutEcranFin->addLayout(hLayout2);
461  mainLayoutEcranFin->addLayout(hLayout3);
462  mainLayoutEcranFin->addLayout(vLayout1);
463 
464  ecranFin->setLayout(mainLayoutEcranFin);
465 
468 }
469 
476 {
477  #ifdef AVEC_BLUETOOTH
478  connect(communication, SIGNAL(connexionMobileDarts()), this, SLOT(afficherAttenteDebutPartie()));
479  connect(communication, SIGNAL(deconnexionMobileDarts()), this, SLOT(afficherAttenteConnexion()));
480  connect(communication, SIGNAL(tramePartieRecue(QString, int)), this, SLOT(afficherDebutPartie(QString, int)));
481  connect(communication, SIGNAL(trameToucheRecue(int, int, int)), this, SLOT(afficherTouche(int, int, int)));
482  connect(communication, SIGNAL(listeJoueurs(QStringList)), this, SLOT(afficherListeJoueurs(QStringList)));
483  //connect(communication, SIGNAL(tramePartieFinRecue(QString)), this, SLOT(gererFinPartie(QString)));
484  connect(communication, SIGNAL(trameReinitialisationRecue()), this, SLOT(afficherAttenteDebutPartie()));
485  connect(partie, SIGNAL(joueurSuivant()), this, SLOT(allerJoueurSuivant()));
486  #endif
487 }
488 
495 {
496  QAction *quitter = new QAction(this);
497  // Touche Esc
498  quitter->setShortcut(QKeySequence(QKeySequence(Qt::Key_Escape)));
499  addAction(quitter);
500  connect(quitter, SIGNAL(triggered()), this, SLOT(close()));
501 
502  // Mode debug (seulement)
503 #ifndef QT_NO_DEBUG_OUTPUT
504  QAction *actionPageSuivante = new QAction(this);
505  // Touche ->
506  actionPageSuivante->setShortcut(QKeySequence(Qt::Key_Right));
507  addAction(actionPageSuivante);
508  connect(actionPageSuivante, SIGNAL(triggered()), this, SLOT(allerPageSuivante()));
509  QAction *actionPagePrecedente = new QAction(this);
510  // Touche <-
511  actionPagePrecedente->setShortcut(QKeySequence(Qt::Key_Left));
512  addAction(actionPagePrecedente);
513  connect(actionPagePrecedente, SIGNAL(triggered()), this, SLOT(allerPagePrecedente()));
514  QAction *actionJoueurPrecedent = new QAction(this);
515  // Touche Haute
516  actionJoueurPrecedent->setShortcut(QKeySequence(Qt::Key_Up));
517  addAction(actionJoueurPrecedent);
518  connect(actionJoueurPrecedent, SIGNAL(triggered()), this, SLOT(allerJoueurPrecedent()));
519  QAction *actionJoueurSuivant = new QAction(this);
520  // Touche Basse
521  actionJoueurSuivant->setShortcut(QKeySequence(Qt::Key_Down));
522  addAction(actionJoueurSuivant);
523  connect(actionJoueurSuivant, SIGNAL(triggered()), this, SLOT(allerJoueurSuivant()));
524 #endif
525 }
526 
534 void IhmDARTS::afficherDebutPartie(QString typePartie, int nbJoueurs)
535 {
536  if(nbJoueurs < 1 || nbJoueurs > NB_JOUEURS_MAX)
537  return;
538  qDebug() << Q_FUNC_INFO << typePartie << nbJoueurs;
539 
540  this->nbJoueurs = nbJoueurs;
541 
542  partie->demarrer(typePartie, nbJoueurs);
543 
545 
546  cacherJoueurs();
547 
549 
551 }
552 
553 void IhmDARTS::afficherTypeJeuEtScore(QString typePartie, int score)
554 {
555  typePartie.remove(QChar('_'));
556  labelTypeDeJeu->setText(typePartie);
557  for(int i=0;i<NB_JOUEURS_MAX;++i)
558  {
559  labelsScoreJoueur.at(i)->setText(QString::number(score));
560  }
561  qDebug() << Q_FUNC_INFO << typePartie << score;
562  this->joueurCourant = 0;
563 }
564 
573 void IhmDARTS::afficherTouche(int idTouche, int valeurTouche, int multiplicateur)
574 {
575  qDebug() << Q_FUNC_INFO << "joueurCourant" << joueurCourant << "idTouche" << idTouche << "valeurTouche" << valeurTouche << "multiplicateur" << multiplicateur;
576 
577  QString strMultiplicateur = determinerMultiplicateur(multiplicateur);
578  afficherVolee(idTouche, valeurTouche, strMultiplicateur);
579 
580  if(partie->setVolee(joueurCourant, idTouche, valeurTouche, multiplicateur))
581  {
582  // mettre à jour l'affichage du score
583  qDebug() << Q_FUNC_INFO << "score" << partie->getScore(joueurCourant);
584  labelsScoreJoueur.at(joueurCourant)->setText(QString::number(partie->getScore(joueurCourant)));
585  if(partie->estPartieTerminee(joueurCourant, multiplicateur))
586  {
588  }
589  if(idTouche == 2)
590  {
592  }
593  }
594 }
595 
596 void IhmDARTS::afficherVolee(int idTouche, int valeurTouche, QString strMultiplicateur)
597 {
598  QString valeurVolee;
599 
600  // première fléchette ?
601  if(idTouche == 0) // 0 à 2 ? 1 à 3 ? Voir protocole !!!
602  {
603  labelsVoleeJoueur.at(joueurCourant)->setText("");
604  }
605  else
606  {
607  valeurVolee = labelsVoleeJoueur.at(joueurCourant)->text();
608  valeurVolee += " ";
609  }
610 
611  valeurVolee += strMultiplicateur + QString::number(valeurTouche);
612  qDebug() << Q_FUNC_INFO << "volee" << valeurVolee;
613  labelsVoleeJoueur.at(joueurCourant)->setText(valeurVolee);
614 }
615 
622 void IhmDARTS::afficherListeJoueurs(QStringList listeJoueurs)
623 {
624  qDebug() << Q_FUNC_INFO << listeJoueurs;
625  for(int i=0;i<listeJoueurs.count();++i)
626  {
627  labelsNomJoueur.at(i)->setText(listeJoueurs.at(i));
628  }
629 }
630 
636 void IhmDARTS::gererFinPartie(QString leGagnant)
637 {
639  labelGagnant->setText("Le gagnant :"+ leGagnant);
640  partieTerminee = true;
645 }
646 
653 {
654  if(ecranDARTS->currentIndex() != ECRAN_PARTIE)
655  return;
656 
657  QPixmap tireur(":icon-arrow-blue-right");
658  QPixmap vierge(":vierge");
659 
660  int joueurPrecedent = (joueurCourant-1)%nbJoueurs;
661  if(joueurPrecedent == -1)
662  joueurPrecedent = nbJoueurs-1;
663 
664  //qDebug() << Q_FUNC_INFO << "joueurCourant" << joueurCourant;
665  //qDebug() << Q_FUNC_INFO << "joueurPrecedent" << joueurPrecedent;
666 
667  labelIconeJoueur.at(joueurCourant)->setPixmap(vierge);
668  labelIconeJoueur.at(joueurPrecedent)->setPixmap(tireur);
669 
670  joueurCourant = joueurPrecedent;
671 }
672 
679 {
680  if(ecranDARTS->currentIndex() != ECRAN_PARTIE)
681  return;
682 
683  QPixmap tireur(":icon-arrow-blue-right");
684  QPixmap vierge(":vierge");
685 
686  int joueurSuivant = (joueurCourant+1)%nbJoueurs;
687 
688  //qDebug() << Q_FUNC_INFO << "joueurCourant" << joueurCourant;
689  //qDebug() << Q_FUNC_INFO << "joueurSuivant" << joueurSuivant;
690 
691  labelIconeJoueur.at(joueurCourant)->setPixmap(vierge);
692  labelIconeJoueur.at(joueurSuivant)->setPixmap(tireur);
693 
694  joueurCourant = joueurSuivant;
695 }
696 
703 {
704  if(ecranDARTS->currentIndex() != ECRAN_PARTIE)
705  return;
706  qDebug() << Q_FUNC_INFO << "joueurCourant" << joueurCourant;
707  QPixmap tireur(":icon-arrow-blue-right");
708  labelIconeJoueur.at(joueurCourant)->setPixmap(tireur);
709 }
710 
711 
713 {
714  for(int i=0;i<labelsVoleeJoueur.size();i++)
715  labelsVoleeJoueur.at(i)->setText("");
716 }
717 
719 {
721  labelGagnant->setText("Vainqueur : " + labelsNomJoueur.at(joueurCourant)->text());
722  partieTerminee = true;
724 }
725 
726 QString IhmDARTS::determinerMultiplicateur(int multiplicateur)
727 {
728  QString strMultiplicateur = "";
729  switch (multiplicateur)
730  {
731  case 1:
732  strMultiplicateur = "";
733  break;
734  case 2:
735  strMultiplicateur = "D";
736  break;
737  case 3:
738  strMultiplicateur = "T";
739  break;
740  default:
741  break;
742  }
743  return strMultiplicateur;
744 }
IhmDARTS::IhmDARTS
IhmDARTS(QWidget *parent=nullptr)
Constructeur de la classe IhmDARTS.
Definition: ihmDarts.cpp:23
statistiques.h
Déclaration de la classe Statistiques.
IhmDARTS::afficherAttenteConnexion
void afficherAttenteConnexion()
Affiche en attente de connextion.
Definition: ihmDarts.cpp:109
IhmDARTS::selectionnerJoueurCourant
void selectionnerJoueurCourant()
Méthode qui selectionner le joueur Courant.
Definition: ihmDarts.cpp:702
QWidget
IhmDARTS::placerWidgetsEcranAccueil
void placerWidgetsEcranAccueil()
Méthode qui place les widgets de l'écran d'accueil.
Definition: ihmDarts.cpp:390
IhmDARTS::afficherListeJoueurs
void afficherListeJoueurs(QStringList listeJoueurs)
Affiche la liste des joueurs.
Definition: ihmDarts.cpp:622
IhmDARTS::afficherEcranFin
void afficherEcranFin()
Definition: ihmDarts.cpp:718
IhmDARTS::partie
Partie * partie
objet partie
Definition: ihmDarts.h:175
POLICE_NOM_APPLICATION
#define POLICE_NOM_APPLICATION
Le police du nom de l'application.
Definition: ihmDarts.h:117
IhmDARTS::fixerLargeurLabel
void fixerLargeurLabel(QLabel *label, int proportion)
Méthode qui fixe la largeur des labels.
Definition: ihmDarts.cpp:300
partie.h
IhmDARTS::labelIconeDarts
QLabel * labelIconeDarts
Definition: ihmDarts.h:196
IhmDARTS::initialiserEvenements
void initialiserEvenements()
Méthode qui initialise les évenements.
Definition: ihmDarts.cpp:475
IhmDARTS::afficherTypeJeuEtScore
void afficherTypeJeuEtScore(QString typePartie, int score)
Definition: ihmDarts.cpp:553
TAILLE_POLICE_TYPE_JEU
#define TAILLE_POLICE_TYPE_JEU
La police du type de jeu.
Definition: ihmDarts.h:52
IhmDARTS::determinerMultiplicateur
QString determinerMultiplicateur(int multiplicateur)
Definition: ihmDarts.cpp:726
ECRAN_PARTIE
#define ECRAN_PARTIE
Le numéro d'écran de gestion de partie.
Definition: ihmDarts.h:37
Partie::setVolee
bool setVolee(int numeroJoueur, int idTouche, int valeur, int multiplicateur)
Méthode qui met à jour la volée.
Definition: partie.cpp:187
IhmDARTS::statistiques
Statistiques * statistiques
objet statistiques
Definition: ihmDarts.h:173
IhmDARTS::labelNomApplication
QLabel * labelNomApplication
Le label du nom de l'application.
Definition: ihmDarts.h:191
IhmDARTS::afficherEcranPartie
void afficherEcranPartie()
Affiche l'écrant partie.
Definition: ihmDarts.cpp:134
Communication
Definition: communication.h:74
IhmDARTS::placerWidgets
void placerWidgets()
Méthode qui place les widgets.
Definition: ihmDarts.cpp:370
IhmDARTS::montrerJoueur
void montrerJoueur(int indexJoueur)
Méthode qui montre les joueurs.
Definition: ihmDarts.cpp:325
IhmDARTS::initialiserWidgets
void initialiserWidgets()
Méthode qui initialise les widjets.
Definition: ihmDarts.cpp:184
IhmDARTS::cacherJoueur
void cacherJoueur(int indexJoueur)
Méthode qui cache les joueurs.
Definition: ihmDarts.cpp:341
IhmDARTS::nbJoueurs
int nbJoueurs
Definition: ihmDarts.h:178
TAILLE_POLICE_VOLEE
#define TAILLE_POLICE_VOLEE
La police de la volee.
Definition: ihmDarts.h:57
FIXER_HAUTEUR_LABEL
#define FIXER_HAUTEUR_LABEL
Fixe la hauteur du label.
Definition: ihmDarts.h:137
IhmDARTS::afficherAttenteDebutPartie
void afficherAttenteDebutPartie()
Affiche en attente de debut de partie.
Definition: ihmDarts.cpp:120
LARGEUR_NOM_JOUEUR
#define LARGEUR_NOM_JOUEUR
La largeur de nom joueur.
Definition: ihmDarts.h:77
Statistiques
Definition: statistiques.h:15
IhmDARTS::placerWidgetsEcranPartie
void placerWidgetsEcranPartie()
Méthode qui place les widgets de l'écran partie.
Definition: ihmDarts.cpp:417
IhmDARTS::allerPageSuivante
void allerPageSuivante()
Affiche la page suivante.
Definition: ihmDarts.cpp:83
NB_ECRANS
#define NB_ECRANS
Le nombre d'écrans.
Definition: ihmDarts.h:47
IhmDARTS::allerPagePrecedente
void allerPagePrecedente()
Affiche la page precdente.
Definition: ihmDarts.cpp:95
POLICE_GAGNANT
#define POLICE_GAGNANT
Le police du gagnant.
Definition: ihmDarts.h:132
IhmDARTS::fixerHauteurLabel
void fixerHauteurLabel(QLabel *label, int proportion)
Méthode qui fixe la hauteur des labels.
Definition: ihmDarts.cpp:313
LARGEUR_VOLEE_JOUEUR
#define LARGEUR_VOLEE_JOUEUR
La largeur de la volee.
Definition: ihmDarts.h:92
IhmDARTS::selectionnerEcran
void selectionnerEcran(int indexEcran)
sélectionne l'ecran
Definition: ihmDarts.cpp:72
Partie::demarrer
void demarrer(QString typePartie, int nbJoueurs)
Méthode qui Demarre est gere les type de partie.
Definition: partie.cpp:36
NB_JOUEURS_MAX
#define NB_JOUEURS_MAX
Le nombres de joueurs max.
Definition: ihmDarts.h:112
LARGEUR_ICONE_JOUEUR
#define LARGEUR_ICONE_JOUEUR
La largeur de l'icone joueur.
Definition: ihmDarts.h:87
IhmDARTS::labelTypeDeJeu
QLabel * labelTypeDeJeu
Le label du type de jeu.
Definition: ihmDarts.h:192
IhmDARTS::labelsScoreJoueur
QVector< QLabel * > labelsScoreJoueur
Un conteneur qui contient le score des joueurs.
Definition: ihmDarts.h:201
IhmDARTS::ecranDARTS
QStackedWidget * ecranDARTS
la pile d'écrans
Definition: ihmDarts.h:182
IhmDARTS::ecranAccueil
QWidget * ecranAccueil
l'écran d'accueil (attente)
Definition: ihmDarts.h:183
ECRAN_ACCUEIL
#define ECRAN_ACCUEIL
Le numéro d'écran d'accueil.
Definition: ihmDarts.h:32
IhmDARTS::labelsNomJoueur
QVector< QLabel * > labelsNomJoueur
Un conteneur qui contient le nom des joueurs.
Definition: ihmDarts.h:198
HAUTEUR_TYPE_JEU
#define HAUTEUR_TYPE_JEU
La hauteur du type de jeu.
Definition: ihmDarts.h:72
HAUTEUR_ICONE_DARTS
#define HAUTEUR_ICONE_DARTS
Fixe la hauteur du label labelIconeDarts.
Definition: ihmDarts.h:147
IhmDARTS::ecranFin
QWidget * ecranFin
l'écran de fin (avec statistiques)
Definition: ihmDarts.h:185
IhmDARTS::cacherJoueurs
void cacherJoueurs()
Méthode qui cache les joueurs.
Definition: ihmDarts.cpp:356
ECRAN_FIN
#define ECRAN_FIN
Le numéro d'écran de fin.
Definition: ihmDarts.h:42
IhmDARTS::labelMessageFin
QLabel * labelMessageFin
Le label du message de fin.
Definition: ihmDarts.h:189
TAILLE_POLICE_SCORE
#define TAILLE_POLICE_SCORE
La police du score.
Definition: ihmDarts.h:62
IhmDARTS::afficherDebutPartie
void afficherDebutPartie(QString typePartie, int nbJoueurs)
affiche le debut de la partie
Definition: ihmDarts.cpp:534
Partie
Déclaration de la classe Partie.
Definition: partie.h:30
IhmDARTS::placerWidgetsEcranFin
void placerWidgetsEcranFin()
Méthode qui place les widgets de l'écran de fin.
Definition: ihmDarts.cpp:445
communication.h
Déclaration de la classe Communication.
IhmDARTS::creerWidgets
void creerWidgets()
Méthode qui crée les widjets.
Definition: ihmDarts.cpp:144
IhmDARTS::allerJoueurPrecedent
void allerJoueurPrecedent()
Sélectionne le joueur précedent.
Definition: ihmDarts.cpp:652
TAILLE_POLICE_NOM_JOUEUR
#define TAILLE_POLICE_NOM_JOUEUR
La police du nom du joueur.
Definition: ihmDarts.h:67
IhmDARTS::communication
Communication * communication
objet communication
Definition: ihmDarts.h:174
POLICE_MESSAGE_ACCUEIL
#define POLICE_MESSAGE_ACCUEIL
Le police du message d'accueil.
Definition: ihmDarts.h:122
ihmDarts.h
Déclaration de la classe IhmDARTS.
LARGEUR_SCORE_JOUEUR
#define LARGEUR_SCORE_JOUEUR
La largeur du score du joueur.
Definition: ihmDarts.h:97
IhmDARTS::allerJoueurSuivant
void allerJoueurSuivant()
Sélectionne le joueur suivant.
Definition: ihmDarts.cpp:678
LARGEUR_ICONE_DARTS
#define LARGEUR_ICONE_DARTS
Fixe la largeur du label labelIconeDarts.
Definition: ihmDarts.h:142
IhmDARTS::afficherVolee
void afficherVolee(int idTouche, int valeurTouche, QString strMultiplicateur)
Definition: ihmDarts.cpp:596
IhmDARTS::partieTerminee
bool partieTerminee
Permet de voire si la partie est terminée.
Definition: ihmDarts.h:179
HAUTEUR_NOM_JOUEUR
#define HAUTEUR_NOM_JOUEUR
La hauteur de nom joueur.
Definition: ihmDarts.h:82
IhmDARTS::labelGagnant
QLabel * labelGagnant
Le label du joueurs gagnant.
Definition: ihmDarts.h:188
Partie::getScoreInitial
int getScoreInitial() const
Méthode qui retourne le score initial.
Definition: partie.cpp:104
IhmDARTS::labelMessageAccueil
QLabel * labelMessageAccueil
Le label du message d'accueil.
Definition: ihmDarts.h:190
IhmDARTS::creerRaccourcisClavier
void creerRaccourcisClavier()
Méthode qui cree les raccourcis clavier.
Definition: ihmDarts.cpp:494
IhmDARTS::labelIconeJoueur
QVector< QLabel * > labelIconeJoueur
Un conteneur qui contient l'icone des joueurs.
Definition: ihmDarts.h:199
POLICE_MESSAGE_FIN
#define POLICE_MESSAGE_FIN
Le police du message de fin.
Definition: ihmDarts.h:127
IhmDARTS::ecranPartie
QWidget * ecranPartie
l'écran d'affichage de partie
Definition: ihmDarts.h:184
IhmDARTS::afficherTouche
void afficherTouche(int idTouche, int valeurTouche, int multiplicateur)
Affiche la touche.
Definition: ihmDarts.cpp:573
IhmDARTS::labelIconeDartsEcranFin
QLabel * labelIconeDartsEcranFin
Definition: ihmDarts.h:197
IhmDARTS::labelsVoleeJoueur
QVector< QLabel * > labelsVoleeJoueur
Un conteneur qui contient la volee des joueurs.
Definition: ihmDarts.h:200
Partie::estPartieTerminee
bool estPartieTerminee(int numeroJoueur, int multiplicateur)
Méthode qui vérifie partie est terminer.
Definition: partie.cpp:265
IhmDARTS::gererFinPartie
void gererFinPartie(QString leGagnant)
Gère la fin de la partie.
Definition: ihmDarts.cpp:636
IhmDARTS::joueurCourant
int joueurCourant
index du tireur
Definition: ihmDarts.h:177
Communication::demarrer
void demarrer()
Méthode qui démarre le serveur Bluetooth.
Definition: communication.cpp:81
IhmDARTS::~IhmDARTS
~IhmDARTS()
Déstructeur de la classe IhmDARTS.
Definition: ihmDarts.cpp:61
Partie::getScore
int getScore(int numeroJoueur) const
Méthode qui retourne le score.
Definition: partie.cpp:116
IhmDARTS::reinitialiserScore
void reinitialiserScore()
Méthode qui réinitialiser de score.
Definition: ihmDarts.cpp:712