ソースを参照

Compteur de coups

François Drouhard 3 年 前
コミット
67cf99af5b
2 ファイル変更28 行追加6 行削除
  1. 23 5
      Chronometre.cpp
  2. 5 1
      Chronometre.h

+ 23 - 5
Chronometre.cpp

@@ -26,6 +26,7 @@
 #include <QLabel>
 #include <QObject>
 #include <QHBoxLayout>
+#include <QVBoxLayout>
 #include <QDebug>
 #include <QFont>
 #include <QTime>
@@ -36,7 +37,8 @@ Chronometre::Chronometre (const QString & nom, Couleur unecouleur, QTime const&
     QWidget (parent),
     couleur(unecouleur),
     temps(tempsDepart),
-    msTempsDepart(tempsDepart)
+    msTempsDepart(tempsDepart),
+    nb_coups (0)
 {
     QHBoxLayout *layoutPrincipal = new QHBoxLayout;
     labelPion = new QLabel;
@@ -48,17 +50,20 @@ Chronometre::Chronometre (const QString & nom, Couleur unecouleur, QTime const&
     groupBox->setFlat(false);
     groupBox->setFont(QFont(groupBox->font().family(), 15));
 
-    QFont font("Arial", 45, QFont::Black);
+    QFont font("Arial", 45);
 
-    ecranTemps = new QLabel();
+    ecranTemps = new QLabel;
     ecranTemps->setMinimumWidth(200);
     ecranTemps->setFont(font);
     ecranTemps->setDisabled(true);
 
-    ecranLayout = new QHBoxLayout;
+    labelCoups = new QLabel;
+
+    ecranLayout = new QVBoxLayout;
     //ecranLayout->addSpacing(10);
     //ecranLayout->addStretch(1);
-    ecranLayout->addWidget(ecranTemps, 0, Qt::AlignHCenter);
+    ecranLayout->addWidget(ecranTemps, 1, Qt::AlignHCenter);
+    ecranLayout->addWidget(labelCoups, 0);
     //ecranLayout->addStretch(1);
     //ecranLayout->addSpacing(10);
 
@@ -118,6 +123,7 @@ void Chronometre::refresh () {
 
 void Chronometre::start () {
     ecranTemps->setEnabled(true);
+    nb_coups++;
 	timer->start ();
 }
 
@@ -129,7 +135,9 @@ void Chronometre::stop () {
 
 void Chronometre::affichage () {
     QString chaineTemps = temps.toString("hh:mm:ss");
+    QString coups;
     ecranTemps->setText(chaineTemps);
+    labelCoups->setText("Coup : " + coups.setNum(nombre_coups()));
     //qDebug() << "Taille : " << ecranTemps->width();
 }
 
@@ -138,6 +146,7 @@ void Chronometre::reinit () {
 		timer->stop();
 	}
     temps  = msTempsDepart;
+    nb_coups = 0;
 	affichage();
 }
 
@@ -172,4 +181,13 @@ QString Chronometre::nomJoueur() const
 void Chronometre::addSecs(unsigned int secondes)
 {
     temps = temps.addSecs(secondes);
+}
+
+/**
+ * @brief Nombre de coups
+ * @return uint du nombre de coups
+ */
+uint Chronometre::nombre_coups() const
+{
+    return nb_coups;
 }

+ 5 - 1
Chronometre.h

@@ -29,6 +29,7 @@
 class QGroupBox;
 class QLabel;
 class QHBoxLayout;
+class QVBoxLayout;
 class QTimer;
 class QString;
 class QPixmap;
@@ -64,6 +65,7 @@ class Chronometre : public QWidget {
     void definirTemps (QTime const& tempsDepart);
     void addSecs (unsigned int secondes);
     QString nomJoueur () const;
+    uint nombre_coups() const;
 
     signals:
     void fin(Chronometre *chrono);
@@ -84,8 +86,10 @@ class Chronometre : public QWidget {
     QTime temps;
     QTime msTempsDepart;
 	QTimer *timer;
-    QHBoxLayout *ecranLayout;
+    QVBoxLayout *ecranLayout;
     QLabel *ecranTemps;
+    QLabel *labelCoups;
+    uint nb_coups;
 };
 
 #endif