Skip to content
Snippets Groups Projects
Commit aa5d1ff9 authored by Yanis Dziki's avatar Yanis Dziki
Browse files

Change char / string en Qchar/ Qstring

parent 0305df62
Branches
No related tags found
No related merge requests found
...@@ -11,7 +11,7 @@ void GrilleManager::createGrid(int rows, int columns) { ...@@ -11,7 +11,7 @@ void GrilleManager::createGrid(int rows, int columns) {
int totalCases = rows * columns; int totalCases = rows * columns;
for (int i = 0; i < totalCases; ++i) { for (int i = 0; i < totalCases; ++i) {
auto *vraieCase = new VraieCase(this); auto *vraieCase = new VraieCase(this);
vraieCase->setLetter('A' + (i % 26)); // Exemple : lettres de A à Z vraieCase->setLetter(QChar('A' + (i % 26)));
vraieCase->setEtat(i % 3); // Exemple : état cyclique (0,1,2) vraieCase->setEtat(i % 3); // Exemple : état cyclique (0,1,2)
m_cases.append(vraieCase); m_cases.append(vraieCase);
} }
......
#include "ligne.h" #include "ligne.h"
#include "fullligneexception.h" #include "fullligneexception.h"
#include "emptyligneexception.h" #include "emptyligneexception.h"
#include <QString>
Ligne::Ligne(string bonmot) : bonmot(bonmot) {} Ligne::Ligne(string bonmot) : bonmot(bonmot) {}
void Ligne::initLigne() { void Ligne::initLigne() {
for (int i = 0; i < bonmot.length(); i++) { for (int i = 0; i < bonmot.length(); i++) {
contenu.push_back(new VraieCase()); contenu.push_back(new VraieCase());
...@@ -14,16 +14,21 @@ void Ligne::initLigne() { ...@@ -14,16 +14,21 @@ void Ligne::initLigne() {
bool Ligne::isGameCleared() { bool Ligne::isGameCleared() {
int nbjustes = 0; int nbjustes = 0;
for (int i = 0; i < bonmot.length(); i++) { for (int i = 0; i < bonmot.length(); i++) {
int etat = (contenu[i]->getLetter() == bonmot[i]) ? 0 : 1; QChar lettre = contenu[i]->getLetter().at(0); // récupérer le caractère
etat += Ligne::dansMot(contenu[i]->getLetter(), bonmot); int etat = (lettre == bonmot[i]) ? 0 : 1;
etat += Ligne::dansMot(lettre, bonmot);
contenu[i]->setEtat(etat); contenu[i]->setEtat(etat);
if (etat == 0) {
nbjustes++;
}
} }
return (nbjustes == 2*bonmot.length()); return (nbjustes == bonmot.length());
} }
bool Ligne::dansMot(char lettre, string mot) { bool Ligne::dansMot(QChar lettre, string mot) {
for (int i = 0; i < mot.length(); i++) { for (int i = 0; i < mot.length(); i++) {
if (mot[i] == lettre) { if (lettre == QChar(mot[i])) {
return true; return true;
} }
} }
...@@ -34,7 +39,7 @@ void Ligne::entreLettre(char lettre) { ...@@ -34,7 +39,7 @@ void Ligne::entreLettre(char lettre) {
if (positionCurseur == bonmot.length()) { if (positionCurseur == bonmot.length()) {
throw FullLigneException(); throw FullLigneException();
} }
contenu[positionCurseur]->setLetter(lettre); contenu[positionCurseur]->setLetter(QChar(lettre)); // Conversion ici
positionCurseur++; positionCurseur++;
} }
...@@ -42,6 +47,6 @@ void Ligne::supprLettre() { ...@@ -42,6 +47,6 @@ void Ligne::supprLettre() {
if (positionCurseur == 0) { if (positionCurseur == 0) {
throw EmptyLigneException(); throw EmptyLigneException();
} }
contenu[positionCurseur - 1]->setLetter(' '); contenu[positionCurseur - 1]->setLetter(QChar(' '));
positionCurseur--; positionCurseur--;
} }
...@@ -28,7 +28,7 @@ private: ...@@ -28,7 +28,7 @@ private:
int taille; int taille;
vector<VraieCase*> contenu; vector<VraieCase*> contenu;
static bool dansMot(char lettre, string mot); static bool dansMot(QChar lettre, std::string mot);
}; };
#endif // LIGNE_H #endif // LIGNE_H
#include "vraiecase.h" #include "vraiecase.h"
VraieCase::VraieCase(QObject *parent) : lettre(' '), etat(0) {} VraieCase::VraieCase(QObject *parent) : QObject(parent), lettre(""), etat(0) {}
char VraieCase::getLetter() const { return lettre; } QString VraieCase::getLetter() const {
void VraieCase::setLetter(char letter) { return lettre;
}
void VraieCase::setLetter(const QString &letter) {
if (lettre != letter) { if (lettre != letter) {
lettre = letter; lettre = letter;
emit letterChanged(); emit letterChanged();
} }
} }
int VraieCase::getEtat() const { return etat; } int VraieCase::getEtat() const {
void VraieCase::setEtat(int etat) { return etat;
if (this->etat != etat) { }
this->etat = etat;
void VraieCase::setEtat(int e) {
if (etat != e) {
etat = e;
emit etatChanged(); emit etatChanged();
} }
} }
...@@ -2,17 +2,18 @@ ...@@ -2,17 +2,18 @@
#define VRAIECASE_H #define VRAIECASE_H
#include <QObject> #include <QObject>
#include <QString>
class VraieCase : public QObject { class VraieCase : public QObject {
Q_OBJECT Q_OBJECT
Q_PROPERTY(char letter READ getLetter WRITE setLetter NOTIFY letterChanged) Q_PROPERTY(QString letter READ getLetter WRITE setLetter NOTIFY letterChanged)
Q_PROPERTY(int etat READ getEtat WRITE setEtat NOTIFY etatChanged) Q_PROPERTY(int etat READ getEtat WRITE setEtat NOTIFY etatChanged)
public: public:
explicit VraieCase(QObject *parent = nullptr); explicit VraieCase(QObject *parent = nullptr);
char getLetter() const; QString getLetter() const;
void setLetter(char letter); void setLetter(const QString &letter); // Mise à jour du type
int getEtat() const; int getEtat() const;
void setEtat(int etat); void setEtat(int etat);
...@@ -22,7 +23,7 @@ signals: ...@@ -22,7 +23,7 @@ signals:
void etatChanged(); void etatChanged();
private: private:
char lettre; QString lettre;
int etat; int etat;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment