diff --git a/motus/Clavier.qml b/motus/Clavier.qml
index a2f75157dd6c9e86f99903c0b95227555bc22a8e..5e9d0638d13642ce95c0683c0b051c47b3e1b748 100644
--- a/motus/Clavier.qml
+++ b/motus/Clavier.qml
@@ -7,7 +7,7 @@ Item {
         columns: 10
         spacing: 5
 
-        property string letters: "AZERTYUIOPQSDFGHJKLMWXCVBN"
+        property string letters: "AZERTYUIOPQSDFGHJKLMWXCVBN0!"
 
         Repeater {
             model: keyboardGrid.letters.length
diff --git a/motus/brain.cpp b/motus/brain.cpp
index d0513cf4a150f761daefe314541059a92f738f31..b1610c12e9153d1dbb734d90ac171c6e6ad375e0 100644
--- a/motus/brain.cpp
+++ b/motus/brain.cpp
@@ -4,6 +4,7 @@
 #include <iostream>
 #include <filesystem>
 #include "grillemanager.h"
+#include "fullligneexception.h"
 
 using namespace std;
 namespace fs = std::filesystem;
@@ -35,8 +36,25 @@ vector<string> Brain::getTxtFiles() {
 }
 
 void Brain::entreLettre(char lettre) {
-    std::cout<<lettre<<std::endl;
-    lignes[nbEssais]->entreLettre(lettre);
+    if (lettre == '0') {
+        validateWord();
+        return;
+    }
+    if (lettre == '!') {
+        supprLettre();
+        lignes[nbEssais]->show();
+        return;
+    }
+    try {
+        lignes[nbEssais]->entreLettre(lettre);
+        lignes[nbEssais]->show();
+    }
+    catch (FullLigneException e) {
+        cout << e.what() <<endl;
+    }
+}
+void Brain::supprLettre() {
+    lignes[nbEssais]->supprLettre();
 }
 
 void Brain::trouveMot() {
@@ -53,7 +71,6 @@ void Brain::trouveMot() {
     while (std::getline(file, line)) {
         if (line.length() - 1 == mTailleMot) {
             listeMots.push_back(line);
-
         }
     }
 
@@ -78,6 +95,11 @@ void Brain::initGame() {
     // Appelé lorsqu'on appuie sur le bouton Start Game
     try {
         trouveMot();
+        cout << "Réponse : [";
+        cout << getMot();
+        cout << "]";
+        cout << endl;
+
         for (int i=0;i<mNbEssaisMax;i++) {
             lignes.push_back(new Ligne(getMot()));
             lignes[i]->initLigne();
@@ -93,6 +115,8 @@ void Brain::initGame() {
 
 void Brain::validateWord() {
     // Appelé lorsqu'on appuie sur le bouton validate du clavier
+    cout << "Validation de la ligne !" << endl;
+
     Ligne* laligne = lignes[nbEssais];
     if (laligne->isGameCleared()) {
         onGameFinish(true);
@@ -107,6 +131,9 @@ void Brain::validateWord() {
 
 //
 void Brain::onGameFinish(bool isWin) {
+    if (!isWin) {
+        cout << "Perdu !" << endl;
+    }
     // TODO :
 
     // Si isWin
diff --git a/motus/brain.h b/motus/brain.h
index 6308c633fc613df0fea3203a24ae2a1927c03fcb..957046cdb41fd5c19afd05a8777887ddae2d0d5c 100644
--- a/motus/brain.h
+++ b/motus/brain.h
@@ -23,6 +23,7 @@ public:
     void onGameFinish(bool isWin);
     vector<string> getTxtFiles();
     void entreLettre(char lettre);
+    void supprLettre();
 
 private:
     string dicodir;
diff --git a/motus/grillemanager.cpp b/motus/grillemanager.cpp
index d765f83ab3c69be180a26c325ede36ec6222e58d..094d663c1fcda3d7ade0f37d700752ddb18102c8 100644
--- a/motus/grillemanager.cpp
+++ b/motus/grillemanager.cpp
@@ -11,8 +11,8 @@ 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->setEtat(i % 3);  // Exemple : état cyclique (0,1,2)
+        vraieCase->setLetter('_');  // Exemple : lettres de A à Z
+        vraieCase->setEtat(0);  // Exemple : état cyclique (0,1,2)
         m_cases.append(vraieCase);
     }
 
diff --git a/motus/jeu.cpp b/motus/jeu.cpp
index 1f788ce662c5ec42727cba6a75f155295ff3dda9..087ccc6f2994376441f2bb8cfe54fc9ad4972065 100644
--- a/motus/jeu.cpp
+++ b/motus/jeu.cpp
@@ -20,7 +20,6 @@ QString Jeu::getMotAffiche() {
 }
 
 void Jeu::onClavierClick(QString lettre) {
-    std::cout << lettre.toStdString() << " est appuyée"<< std::endl;
     brain.entreLettre(lettre.toStdString()[0]);
 }
 
diff --git a/motus/ligne.cpp b/motus/ligne.cpp
index 8bd795bbf1992e39d4564f45204b3c45fbb51090..4f663f195e5c7e387f51da1b71394d0b2726c363 100644
--- a/motus/ligne.cpp
+++ b/motus/ligne.cpp
@@ -1,8 +1,11 @@
 #include "ligne.h"
 #include "fullligneexception.h"
 #include "emptyligneexception.h"
+#include "iostream"
+#include <cctype>
+using namespace std;
 
-Ligne::Ligne(string bonmot) : bonmot(bonmot) {}
+Ligne::Ligne(string bonmot) : bonmot(bonmot), positionCurseur(0) {}
 
 
 void Ligne::initLigne() {
@@ -14,13 +17,26 @@ 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);
+        int etat = (tolower(contenu[i]->getLetter()) == bonmot[i]) ? 0 : 1;
+        etat += Ligne::dansMot(tolower(contenu[i]->getLetter()), bonmot);
         contenu[i]->setEtat(etat);
+        cout << contenu[i]->getLetter() << bonmot[i] << etat << endl;
     }
+    show();
     return (nbjustes == 2*bonmot.length());
 }
 
+void Ligne::show() {
+    cout << "La ligne : |";
+    for (int i=0;i<bonmot.length();i++) {
+        if (contenu[i]->getEtat() == 1) {cout << "\033[33m";}
+        if (contenu[i]->getEtat() == 2) {cout << "";}
+        cout << contenu[i]->getLetter();
+        if (contenu[i]->getEtat() >= 1) cout << "\033[31m";
+    }
+    cout << "|" << endl;
+}
+
 bool Ligne::dansMot(char lettre, string mot) {
     for (int i=0;i<mot.length();i++) {
         if (mot[i] == lettre) {
@@ -42,6 +58,7 @@ void Ligne::supprLettre() {
     if (positionCurseur == 0) {
         throw EmptyLigneException();
     }
+    cout << "Suppression d'une lettre" << endl;
     contenu[positionCurseur - 1]->setLetter(' ');
     positionCurseur--;
 }
diff --git a/motus/ligne.h b/motus/ligne.h
index 6f27e62ce5946419e273b478200e1965b72c8a1e..d1857af959db83aaf6d888b912f594e3c36e2489 100644
--- a/motus/ligne.h
+++ b/motus/ligne.h
@@ -21,6 +21,7 @@ public:
     bool isGameCleared();
     void entreLettre(char lettre);
     void supprLettre();
+    void show();
 
 private:
     string bonmot;