diff --git a/motus/grillemanager.cpp b/motus/grillemanager.cpp
index d765f83ab3c69be180a26c325ede36ec6222e58d..a60e35f8e10f7fd9e27caf9270b2ebbbedbf3284 100644
--- a/motus/grillemanager.cpp
+++ b/motus/grillemanager.cpp
@@ -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);
     }
diff --git a/motus/ligne.cpp b/motus/ligne.cpp
index 8bd795bbf1992e39d4564f45204b3c45fbb51090..f9af52843f501358ce432b9fa9be949581c98421 100644
--- a/motus/ligne.cpp
+++ b/motus/ligne.cpp
@@ -1,29 +1,34 @@
 #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++) {
+    for (int i = 0; i < bonmot.length(); i++) {
         contenu.push_back(new VraieCase());
     }
 }
 
 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);
+    for (int i = 0; i < bonmot.length(); i++) {
+        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) {
-    for (int i=0;i<mot.length();i++) {
-        if (mot[i] == lettre) {
+bool Ligne::dansMot(QChar lettre, string mot) {
+    for (int i = 0; i < mot.length(); i++) {
+        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--;
 }
diff --git a/motus/ligne.h b/motus/ligne.h
index 6f27e62ce5946419e273b478200e1965b72c8a1e..76de64d1bad2d8ab20ff0e195d4a8572148cff30 100644
--- a/motus/ligne.h
+++ b/motus/ligne.h
@@ -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
diff --git a/motus/vraiecase.cpp b/motus/vraiecase.cpp
index c2efba705d1e30f507ebc0c5f0f6c47478377976..39e89d78d8680e2606a5ac940e0385fa4966d4d9 100644
--- a/motus/vraiecase.cpp
+++ b/motus/vraiecase.cpp
@@ -1,19 +1,25 @@
 #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();
     }
 }
diff --git a/motus/vraiecase.h b/motus/vraiecase.h
index 46bd1928eb797a945b5cb7d2ef854dcc27806d39..b8346da7ec9c022f155d45fe7c455a34f0d55a29 100644
--- a/motus/vraiecase.h
+++ b/motus/vraiecase.h
@@ -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;
 };