diff --git a/Motus/CMakeLists.txt b/Motus/CMakeLists.txt
index f27c3111c882474822073ffb9d1ff7069a8a504c..12c3cd004d244da06afd9de34d4f9075dca9ab61 100644
--- a/Motus/CMakeLists.txt
+++ b/Motus/CMakeLists.txt
@@ -23,6 +23,7 @@ qt_add_qml_module(appMotus
         QML_FILES Key.qml
         QML_FILES BackKey.qml
         QML_FILES Bouton.qml
+        SOURCES wordchooser.h wordchooser.cpp
 )
 
 # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
diff --git a/Motus/Main.qml b/Motus/Main.qml
index 25eb496ebe016baa8719a3735a816f2454f6de64..563a7fad9affe75164e07b7f3a6d881dcd7bcff5 100644
--- a/Motus/Main.qml
+++ b/Motus/Main.qml
@@ -42,7 +42,13 @@ Window {
                 y: 0
                 width: 400
                 height: 200
-                onClicked: case3._textColor="#51c3e1"
+                onClicked: {
+                    let mot = wordChooser.getRandomWord();
+                    console.log("Mot choisi :", mot);
+                    case3._textText = mot;
+                    onClicked: case3._textColor="#51c3e1";
+                }
+
 
                 Case {
                     id: case3
diff --git a/Motus/main.cpp b/Motus/main.cpp
index c1e254b391c9abb224d3571241c206e2d273020e..a365692372389857885c870309a57096ac2467c4 100644
--- a/Motus/main.cpp
+++ b/Motus/main.cpp
@@ -1,19 +1,25 @@
 #include <QGuiApplication>
 #include <QQmlApplicationEngine>
+#include <QQmlContext>
+#include "WordChooser.h"
 
 int main(int argc, char *argv[])
 {
     QGuiApplication app(argc, argv);
 
     QQmlApplicationEngine engine;
+
+    WordChooser wordChooser;
+    engine.rootContext()->setContextProperty("wordChooser", &wordChooser);
+
     QObject::connect(
         &engine,
         &QQmlApplicationEngine::objectCreationFailed,
         &app,
         []() { QCoreApplication::exit(-1); },
         Qt::QueuedConnection);
+
     engine.loadFromModule("Motus", "Main");
 
     return app.exec();
 }
-
diff --git a/Motus/wordchooser.cpp b/Motus/wordchooser.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0f487670e4f734d2fd71b2337d80d54f47d85d27
--- /dev/null
+++ b/Motus/wordchooser.cpp
@@ -0,0 +1,30 @@
+#include "WordChooser.h"
+#include <QFile>
+#include <QTextStream>
+#include <QRandomGenerator>
+QFile file("words_alpha.txt");
+
+WordChooser::WordChooser(QObject *parent) : QObject(parent) {
+    loadWords();
+}
+
+void WordChooser::loadWords() {
+    QFile file(":/words_alpha.txt"); // adapte le chemin si besoin
+    if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+        QTextStream in(&file);
+        while (!in.atEnd()) {
+            QString line = in.readLine().trimmed();
+            if (!line.isEmpty())
+                words.append(line);
+        }
+        file.close();
+    }
+}
+
+QString WordChooser::getRandomWord() {
+    if (words.isEmpty())
+        return "";
+    int index = QRandomGenerator::global()->bounded(words.size());
+    return words[index];
+}
+
diff --git a/Motus/wordchooser.h b/Motus/wordchooser.h
new file mode 100644
index 0000000000000000000000000000000000000000..f04fb5fc352993dac7da336ce5dcd33348f03b38
--- /dev/null
+++ b/Motus/wordchooser.h
@@ -0,0 +1,19 @@
+#ifndef WORDCHOOSER_H
+#define WORDCHOOSER_H
+
+#include <QObject>
+#include <QString>
+#include <QStringList>
+
+class WordChooser : public QObject {
+    Q_OBJECT
+public:
+    explicit WordChooser(QObject *parent = nullptr);
+    Q_INVOKABLE QString getRandomWord();
+
+private:
+    QStringList words;
+    void loadWords();
+};
+
+#endif // WORDCHOOSER_H