diff --git a/motus/brain.cpp b/motus/brain.cpp
index d0513cf4a150f761daefe314541059a92f738f31..fbf1454613953f751f82e0317bd8ab36eb3836e6 100644
--- a/motus/brain.cpp
+++ b/motus/brain.cpp
@@ -4,6 +4,8 @@
 #include <iostream>
 #include <filesystem>
 #include "grillemanager.h"
+#include <QString>
+
 
 using namespace std;
 namespace fs = std::filesystem;
@@ -74,23 +76,27 @@ void Brain::setNombreEssais(int nbEssais) {mNbEssaisMax = nbEssais;}
 void Brain::setTailleMots(int tailleMot) {mTailleMot = tailleMot;}
 string Brain::getMot() {return mot;}
 
+
 void Brain::initGame() {
-    // Appelé lorsqu'on appuie sur le bouton Start Game
     try {
         trouveMot();
-        for (int i=0;i<mNbEssaisMax;i++) {
+        for (int i = 0; i < mNbEssaisMax; i++) {
             lignes.push_back(new Ligne(getMot()));
             lignes[i]->initLigne();
         }
-    }
-    catch (NoWordException e) {
+
+        // Convertir std::string (getMot()) en QString
+        QString motQString = QString::fromStdString(getMot());  // Conversion de std::string en QString
+        GrilleManager grille(motQString);  // Passer le QString à GrilleManager
+        grille.createGrid(mNbEssaisMax, mTailleMot);  // Créer la grille
+    } catch (NoWordException e) {
         cout << e.what() << endl;
     }
-
-    GrilleManager grille;
-    grille.createGrid(mNbEssaisMax, mTailleMot);
 }
 
+
+
+
 void Brain::validateWord() {
     // Appelé lorsqu'on appuie sur le bouton validate du clavier
     Ligne* laligne = lignes[nbEssais];
diff --git a/motus/grillemanager.cpp b/motus/grillemanager.cpp
index a60e35f8e10f7fd9e27caf9270b2ebbbedbf3284..2150363d60fe233c19b9ef03d3bc5d2168029ad1 100644
--- a/motus/grillemanager.cpp
+++ b/motus/grillemanager.cpp
@@ -1,22 +1,30 @@
 #include "grillemanager.h"
 
-GrilleManager::GrilleManager(QObject *parent) : QObject(parent) {
-    // Initialisation avec une grille vide
-    m_cases.clear();
+GrilleManager::GrilleManager(const QString &mot, QObject *parent)
+    : QObject(parent), m_mot(mot) {
+    // Initialisation de la grille (si tu veux le faire immédiatement dans le constructeur)
+    createGrid(6, m_mot.length());  // Exemple : 6 essais, longueur du mot
 }
 
 void GrilleManager::createGrid(int rows, int columns) {
     m_cases.clear();  // Vide la grille avant de la remplir
 
-    int totalCases = rows * columns;
-    for (int i = 0; i < totalCases; ++i) {
-        auto *vraieCase = new VraieCase(this);
-        vraieCase->setLetter(QChar('A' + (i % 26)));
-        vraieCase->setEtat(i % 3);  // Exemple : état cyclique (0,1,2)
+    // Remplir la grille avec des cases
+    for (int i = 0; i < rows * columns; ++i) {
+        VraieCase *vraieCase = new VraieCase(this);
+
+        // Si on est à la première case, on met la première lettre du mot, sinon on met '_'
+        if (i < m_mot.length()) {
+            vraieCase->setLetter(m_mot[i]);  // Conversion automatique depuis QString
+        } else {
+            vraieCase->setLetter(QString("_"));  // Conversion du char '_' en QString
+        }
+
+        vraieCase->setEtat(0);  // Tu peux définir l'état comme tu veux
         m_cases.append(vraieCase);
     }
 
-    emit casesChanged();
+    emit casesChanged();  // Émettre le signal pour indiquer que la grille a changé
 }
 
 QQmlListProperty<VraieCase> GrilleManager::getCases() {
diff --git a/motus/grillemanager.h b/motus/grillemanager.h
index 15caaa78aad7e79fc60c88d8f196c8e8dc452c02..970e528665c639289d7fc2ec284f9a2a02cf506c 100644
--- a/motus/grillemanager.h
+++ b/motus/grillemanager.h
@@ -10,18 +10,16 @@ class GrilleManager : public QObject {
     Q_PROPERTY(QQmlListProperty<VraieCase> cases READ getCases NOTIFY casesChanged)
 
 public:
-    explicit GrilleManager(QObject *parent = nullptr);
-
-    // Fonction pour créer une grille de taille variable
-    Q_INVOKABLE void createGrid(int rows, int columns);
-
-    QQmlListProperty<VraieCase> getCases();
+    explicit GrilleManager(const QString &mot, QObject *parent = nullptr);  // Le mot en argument
+    void createGrid(int rows, int columns);  // Créer la grille
+    QQmlListProperty<VraieCase> getCases();  // Obtenir les cases
 
 signals:
     void casesChanged();
 
 private:
-    QList<VraieCase*> m_cases;
+    QString m_mot;
+    QList<VraieCase *> m_cases;  // Liste des cases de la grille
 };
 
 #endif // GRILLEMANAGER_H
diff --git a/motus/jeu.cpp b/motus/jeu.cpp
index 1f788ce662c5ec42727cba6a75f155295ff3dda9..3fb7f0e8daddc1f3aa310c65698173211a3b7e8e 100644
--- a/motus/jeu.cpp
+++ b/motus/jeu.cpp
@@ -1,24 +1,23 @@
 #include "jeu.h"
 #include <iostream>
 
-Jeu::Jeu(QObject *parent) : QObject(parent), brain("./") {
 
 
-    mot = QString::fromStdString(brain.getMot()); // ✅ Conversion std::string → QString
+Jeu::Jeu(QObject *parent) : QObject(parent), brain("./"), grilleManager("", this) {
+}
 
-    std::cout << "Mot choisi : " << mot.toStdString() << std::endl;
+void Jeu::setMot(const QString& mot) {
+    this->mot = mot;
+    grilleManager.createGrid(mot.length(), 1); // Utilise la longueur du mot pour la grille
+    emit motChanged();
 }
 
-QString Jeu::getMotAffiche() {
-    if (mot.isEmpty()) return "";
 
-    QString affichage = QString(mot.at(0));
-    for (int i = 1; i < mot.length(); ++i) {
-        affichage += " _";
-    }
-    return affichage;
+QString Jeu::getMotAffiche() {
+    return mot;
 }
 
+
 void Jeu::onClavierClick(QString lettre) {
     std::cout << lettre.toStdString() << " est appuyée"<< std::endl;
     brain.entreLettre(lettre.toStdString()[0]);
@@ -32,8 +31,8 @@ void Jeu::initGame() {
 void Jeu::startGame() {
     brain.setFichierDico("words_alpha.txt");
 
-    brain.setNombreEssais(6); // ou ce que tu veux
-    brain.setTailleMots(5);   // idem
+    brain.setNombreEssais(6);
+    brain.setTailleMots(5);
 
     brain.initGame();
 
diff --git a/motus/jeu.h b/motus/jeu.h
index c654e817be3193ab9b0c901e558827f4f3698414..da98313e8416d5a0bf64c9534abcec20585d92be 100644
--- a/motus/jeu.h
+++ b/motus/jeu.h
@@ -16,9 +16,9 @@ public:
     Q_INVOKABLE void onClavierClick(QString lettre);
     Q_INVOKABLE void initGame();
     Q_INVOKABLE void startGame(); // pour init depuis QML
+    Q_INVOKABLE void setMot(const QString& mot); // Ajouter cette méthode pour définir le mot
     GrilleManager* getGrilleManager() { return &grilleManager; }
 
-
 signals:
     void motChanged();
 
diff --git a/motus/main.cpp b/motus/main.cpp
index 6fef187ccce7f913c9453b9b29bc3132a2ce8aee..98e34cd2ed777f0acea0d2b6ff974b305ec12b39 100644
--- a/motus/main.cpp
+++ b/motus/main.cpp
@@ -9,13 +9,14 @@ int main(int argc, char *argv[]) {
     QGuiApplication app(argc, argv);
     QQmlApplicationEngine engine;
 
-
     qmlRegisterType<VraieCase>("motus", 1, 0, "VraieCase");
     qmlRegisterType<GrilleManager>("motus", 1, 0, "GrilleManager");
 
+    // Créer l'objet Jeu sans mot
     Jeu jeu;
     engine.rootContext()->setContextProperty("jeu", &jeu);
 
+    // Charger l'interface utilisateur (QML)
     engine.loadFromModule("motus", "Main");
 
     return app.exec();