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