diff --git a/app.js b/app.js
index 4cb8aeb0d6649638ecdf3629ff9ce0d0912d5f04..17b0a569408e4d428edab34c7d03b7c6f06fdcc0 100644
--- a/app.js
+++ b/app.js
@@ -62,9 +62,9 @@ io.on('connection', (socket) => {
         io.to(socket.id).emit('list rooms', rooms);
     });
 
-    socket.on('play', (player) => {
-        console.log(`[play] ${player.username}`);
-        io.to(player.roomId).emit('play', player);
+    socket.on('play', (g) => {
+        console.log(g);
+        socket.broadcast.emit('play', g); // On renvoie l'objet complet aux autres joueurs
     });
 
     socket.on('play again', (roomId) => {
diff --git a/htdocs/index.js b/htdocs/index.js
index 181de86301202020c6bab1566373fe83ba7edb6f..d98bf60aa341b311bf0238f429b525d11a50aad0 100644
--- a/htdocs/index.js
+++ b/htdocs/index.js
@@ -1,12 +1,23 @@
+const board = [
+    ["T", "C", "F", "Q", "K", "F", "C", "T"],
+    ["P", "P", "P", "P", "P", "P", "P", "P"],
+    ["", "", "", "", "", "", "", ""],
+    ["", "", "", "", "", "", "", ""],
+    ["", "", "", "", "", "", "", ""],
+    ["", "", "", "", "", "", "", ""],
+    ["p", "p", "p", "p", "p", "p", "p", "p"],
+    ["t", "c", "f", "q", "k", "f", "c", "t"]
+];
 const player = {
     host: false,
-    playedCell: "",
+    playedMove: board,
     roomId: null,
     username: "",
     socketId: "",
     symbol: "X",
     turn: false,
-    win: false
+    win: false,
+    isBlackPlayer: false
 };
 
 const socket = io();
@@ -81,21 +92,6 @@ $("#form").on('submit', function (e) {
     socket.emit('playerData', player);
 });
 
-$(".cell").on("click", function (e) {
-    const playedCell = this.getAttribute('id');
-
-    if (this.innerText === "" && player.turn) {
-        player.playedCell = playedCell;
-
-        this.innerText = player.symbol;
-
-        player.win = calculateWin(playedCell);
-        player.turn = false;
-
-        socket.emit('play', player);
-    }
-});
-
 $("#restart").on('click', function () {
     restartGame();
 })
@@ -106,48 +102,54 @@ socket.on('join room', (roomId) => {
 });
 
 socket.on('start game', (players) => {
-    console.log(players)
+    console.log(players);
     startGame(players);
 });
 
-socket.on('play', (ennemyPlayer) => {
-
-    if (ennemyPlayer.socketId !== player.socketId && !ennemyPlayer.turn) {
-        const playedCell = document.getElementById(`${ennemyPlayer.playedCell}`);
 
-        playedCell.classList.add('text-danger');
-        playedCell.innerHTML = 'O';
-
-        if (ennemyPlayer.win) {
-            setTurnMessage('alert-info', 'alert-danger', `C'est perdu ! <b>${ennemyPlayer.username}</b> a gagné !`);
-            calculateWin(ennemyPlayer.playedCell, 'O');
-            showRestartArea();
-            return;
-        }
-
-        if (calculateEquality()) {
-            setTurnMessage('alert-info', 'alert-warning', "C'est une egalité !");
-            return;
-        }
-
-        setTurnMessage('alert-info', 'alert-success', "C'est ton tour de jouer");
-        player.turn = true;
-    } else {
-        if (player.win) {
-            $("#turn-message").addClass('alert-success').html("Félicitations, tu as gagné la partie !");
-            showRestartArea();
-            return;
-        }
-
-        if (calculateEquality()) {
-            setTurnMessage('alert-info', 'alert-warning', "C'est une egalité !");
-            showRestartArea();
-            return;
-        }
-
-        setTurnMessage('alert-success', 'alert-info', `C'est au tour de <b>${ennemyUsername}</b> de jouer`)
-        player.turn = false;
-    }
+socket.on('play', (f) => {
+    console.log(f);
+    console.log(board);
+    
+    player.playedMove=f;
+    console.log(player.playedMove);
+    draw(player);
+
+
+    // if (ennemyPlayer.socketId !== player.socketId && !ennemyPlayer.turn) {
+        
+    //     player.playedMove = ennemyPlayer.playedMove;
+
+    //     if (ennemyPlayer.win) {
+    //         setTurnMessage('alert-info', 'alert-danger', `C'est perdu ! <b>${ennemyPlayer.username}</b> a gagné !`);
+    //         //calculateWin(ennemyPlayer.playedCell, 'O');
+    //         showRestartArea();
+    //         return;
+    //     }
+
+    //     if (calculateEquality()) {
+    //         setTurnMessage('alert-info', 'alert-warning', "C'est une egalité !");
+    //         return;
+    //     }
+
+    //     setTurnMessage('alert-info', 'alert-success', "C'est ton tour de jouer");
+    //     player.turn = true;
+    // } else {
+    //     if (player.win) {
+    //         $("#turn-message").addClass('alert-success').html("Félicitations, tu as gagné la partie !");
+    //         showRestartArea();
+    //         return;
+    //     }
+
+    //     if (calculateEquality()) {
+    //         setTurnMessage('alert-info', 'alert-warning', "C'est une egalité !");
+    //         showRestartArea();
+    //         return;
+    //     }
+
+    //     setTurnMessage('alert-success', 'alert-info', `C'est au tour de <b>${ennemyUsername}</b> de jouer`)
+    //     player.turn = false;
+    // }
 });
 
 socket.on('play again', (players) => {
@@ -158,8 +160,8 @@ function startGame(players) {
     restartArea.classList.add('d-none');
     waitingArea.classList.add('d-none');
     turnMsg.classList.remove('d-none');
-    draw();
     const ennemyPlayer = players.find(p => p.socketId != player.socketId);
+    draw(ennemyPlayer);
     ennemyUsername = ennemyPlayer.username;
 
     if (player.host && player.turn) {
@@ -174,6 +176,7 @@ function setTurnMessage(classToRemove, classToAdd, html) {
     turnMsg.classList.add(classToAdd);
     turnMsg.innerHTML = html;
 }
+
 const joinRoom = function () {
     if (usernameInput.value !== "") {
         player.username = usernameInput.value;
@@ -193,16 +196,6 @@ const ctx = canvas.getContext("2d");
 const size = 60; // Taille des cases
 currentPlayer = 0;
 // Disposition initiale de l'échiquier
-const board = [
-    ["T", "C", "F", "Q", "K", "F", "C", "T"],
-    ["P", "P", "P", "P", "P", "P", "P", "P"],
-    ["", "", "", "", "", "", "", ""],
-    ["", "", "", "", "", "", "", ""],
-    ["", "", "", "", "", "", "", ""],
-    ["", "", "", "", "", "", "", ""],
-    ["p", "p", "p", "p", "p", "p", "p", "p"],
-    ["t", "c", "f", "q", "k", "f", "c", "t"]
-];
 
 // Charger les images des pièces
 
@@ -237,10 +230,10 @@ function drawBoard() {
 }
 
 // Dessiner les pièces sur l'échiquier
-function drawPieces() {
+function drawPieces(player) {
     for (let row = 0; row < 8; row++) {
         for (let col = 0; col < 8; col++) {
-            const piece = board[row][col];
+            const piece = player.playedMove[row][col];
             if (piece !== "") {
                 let img = new Image();
                 img.src = "chess_pieces/" + pieceImages[piece];
@@ -256,13 +249,13 @@ function drawPieces() {
 }
 
 // Fonction principale pour dessiner l'échiquier
-function draw() {
+function draw(player) {
     drawBoard();
-    drawPieces();
+    drawPieces(player);
 }
 
 // Appeler la fonction pour afficher l'échiquier
-draw();
+draw(player);
 
 
 //Mouvement des pièces sur l'échiquier 
@@ -275,7 +268,7 @@ canvas.addEventListener("click", function(event) {
     const row = Math.floor(event.offsetY / size);
 
     if (selectedPiece) {
-        movePiece(row, col);
+        movePiece(player,row, col);
     } else {
         selectPiece(row, col);
     }
@@ -561,16 +554,7 @@ function highlightMoves(player,piece, row, col) {
 
 
 
-function drawHighlightedMoves(moves) {
-    ctx.fillStyle = "rgba(0, 255, 0, 0.5)";  // Vert transparent
-
-    for (let move of moves) {
-        ctx.beginPath();
-        ctx.arc(move.col * size + size / 2, move.row * size + size / 2, size / 4, 0, 2 * Math.PI);
-        ctx.fill();
-    }
-}
-function movePiece(newRow, newCol) {
+function movePiece(player,newRow, newCol) {
     if (!selectedPiece) return;
 
     // Vérifier si le mouvement est valide
@@ -591,10 +575,18 @@ function movePiece(newRow, newCol) {
         currentPlayer=(currentPlayer+1)%2;
         // Redessiner le plateau
         drawBoard();
-        drawPieces();
+        drawPieces(player);
+        player.playedMove=board;
+        console.log("[Client] Envoi des données : ", {
+            socketId: player.socketId,
+            playedMove: board // ou ce qui est nécessaire pour l'échiquier
+        });
+        socket.emit('play', player.playedMove // ou quel que soit le nom de ta variable représentant l'échiquier
+        );
     } else {
         // Si le mouvement est invalide, tu pourrais afficher un message
         console.log("Mouvement invalide !");
         selectedPiece=null;
+        
     }
 }