diff --git a/htdocs/index.js b/htdocs/index.js
index 2e24b2a26dc491c7b2397319fbdc63c7cfb28a48..0884cdb8d2d78ba89e695eb84858aa90f0a26bfc 100644
--- a/htdocs/index.js
+++ b/htdocs/index.js
@@ -10,7 +10,7 @@ const board = [
 ];
 const player = {
     host: false,
-    //playedMove: board,
+    playedMove: board,
     roomId: null,
     username: "",
     socketId: "",
@@ -18,7 +18,8 @@ const player = {
     turn: false,
     win: false,
     isBlackPlayer: true,
-    pieces: ["T", "C", "F", "Q", "K", "P"]
+    pieces: ["T", "C", "F", "Q", "K", "P"],
+    echec: false
 };
 
 
@@ -108,13 +109,8 @@ socket.on('join room', (roomId) => {
 
 socket.on('start game', (players) => {
     console.log(players, "Le jeu commence");
-    
     startGame(players);
     console.log(player.isBlackPlayer)
-    if (player.isBlackPlayer) {
-        document.getElementById('chessboard').classList.add('black-perspective');
-        console.log("échiquier inversé")
-    }
 });
 
 
@@ -177,8 +173,7 @@ function startGame(players) {
     restartArea.classList.add('d-none');
     waitingArea.classList.add('d-none');
     turnMsg.classList.remove('d-none');
-    const ennemyPlayer = players.find(p => p.socketId != player.socketId);
-    
+    const ennemyPlayer = players.find(p => p.socketId != player.socketId);  
     draw();
     ennemyUsername = ennemyPlayer.username;
     tour = {currentPlayer: player, ennemyPlayer: ennemyPlayer};
@@ -254,26 +249,12 @@ function drawPieces() {
             if (piece !== "") {
                 let img = new Image();
                 img.src = "chess_pieces/" + pieceImages[piece];
-                if (player.isBlackPlayer){
-                    img.onload = function () {
-                        ctx.save();
-                        ctx.translate((col) * size, (row) * size);
-                        ctx.rotate(Math.PI);
-                        ctx.drawImage(img, -size, -size, size, size);
-                        ctx.restore();
-                    };                    
-                    img.onerror = function (e) {
-                        console.log("Erreur de chargement de l'image : ", img.src); // En cas d'erreur de chargement
-                        };
-                }
-                else{
-                    img.onload = function () {
+                img.onload = function () {
                     ctx.drawImage(img, col * size, row * size, size, size);
-                    };
-                    img.onerror = function (e) {
+                };
+                img.onerror = function (e) {
                     console.log("Erreur de chargement de l'image : ", img.src); // En cas d'erreur de chargement
-                    };
-                }
+                };
             }
         }
     }
@@ -324,11 +305,13 @@ function selectPiece(row, col) {
 }
 
 function highlightMoves(tour,piece, row, col) {
-    let direction = 0;
+    let ennemyPieces = [];
     if (player.isBlackPlayer===false){
+        ennemyPieces = ["T", "C", "F", "Q", "K", "P"];
         direction=-1;
     }
     else{direction=1;
+        ennemyPieces = ["t", "c", "f", "q", "k", "p"];
     }
     let moves = [];
     console.log(piece.toLowerCase() === "p");
@@ -346,10 +329,10 @@ function highlightMoves(tour,piece, row, col) {
         if (board[row + direction] && board[row + direction][col] === "") {
             moves.push({ row: row + direction, col });
         }
-        if (tour.ennemyPlayer.pieces.includes(board[row + direction][col + direction])){
+        if (ennemyPieces.includes(board[row + direction][col + direction])){
             moves.push({row: row +direction, col: col + direction })
         }
-        if (tour.ennemyPlayer.pieces.includes(board[row + direction][col - direction])){
+        if (ennemyPieces.includes(board[row + direction][col - direction])){
             moves.push({row: row +direction, col: col - direction })
         }
     }
@@ -360,7 +343,7 @@ function highlightMoves(tour,piece, row, col) {
             moves.push({ row: r, col });
             } 
             else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][col])) {
+                if (ennemyPieces.includes(board[r][col])) {
                 moves.push({ row: r, col }); // Capture possible
                 }
                 break // Bloqué par une pièce
@@ -372,7 +355,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][col] === "") {
                 moves.push({ row: r, col });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][col])) {
+                if (ennemyPieces.includes(board[r][col])) {
                     moves.push({ row: r, col });
                 }
                 break;
@@ -384,7 +367,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[row][c] === "") {
                 moves.push({ row, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[row][c])) {
+                if (ennemyPieces.includes(board[row][c])) {
                     moves.push({ row, col: c });
                 }
                 break;
@@ -396,7 +379,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[row][c] === "") {
                 moves.push({ row, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[row][c])) {
+                if (ennemyPieces.includes(board[row][c])) {
                     moves.push({ row, col: c });
                 }
                 break;
@@ -409,7 +392,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break; // Bloqué par une pièce
@@ -421,7 +404,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break;
@@ -433,7 +416,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break;
@@ -445,7 +428,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break;
@@ -470,7 +453,7 @@ function highlightMoves(tour,piece, row, col) {
     
             // Vérifie que la nouvelle position est sur l'échiquier
             if (newRow >= 0 && newRow < 8 && newCol >= 0 && newCol < 8) {
-                if (board[newRow][newCol] === "" || tour.ennemyPlayer.pieces.includes(board[newRow][newCol])) {
+                if (board[newRow][newCol] === "" || ennemyPieces.includes(board[newRow][newCol])) {
                     moves.push({ row: newRow, col: newCol });
                 }
             }
@@ -490,7 +473,7 @@ function highlightMoves(tour,piece, row, col) {
     
             // Vérifie que la nouvelle position est sur l'échiquier
             if (newRow >= 0 && newRow < 8 && newCol >= 0 && newCol < 8) {
-                if (board[newRow][newCol] === "" || tour.ennemyPlayer.pieces.includes(board[newRow][newCol])) {
+                if (board[newRow][newCol] === "" || ennemyPieces.includes(board[newRow][newCol])) {
                     moves.push({ row: newRow, col: newCol });
                 }
             }
@@ -503,7 +486,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][col] === "") {
                 moves.push({ row: r, col });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][col])) {
+                if (ennemyPieces.includes(board[r][col])) {
                     moves.push({ row: r, col }); // Capture possible
                 }
                 break; // Bloqué par une pièce
@@ -513,7 +496,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][col] === "") {
                 moves.push({ row: r, col });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][col])) {
+                if (ennemyPieces.includes(board[r][col])) {
                     moves.push({ row: r, col });
                 }
                 break;
@@ -525,7 +508,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[row][c] === "") {
                 moves.push({ row, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[row][c])) {
+                if (ennemyPieces.includes(board[row][c])) {
                     moves.push({ row, col: c });
                 }
                 break;
@@ -535,7 +518,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[row][c] === "") {
                 moves.push({ row, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[row][c])) {
+                if (ennemyPieces.includes(board[row][c])) {
                     moves.push({ row, col: c });
                 }
                 break;
@@ -547,7 +530,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break;
@@ -557,7 +540,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break;
@@ -567,7 +550,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break;
@@ -577,7 +560,7 @@ function highlightMoves(tour,piece, row, col) {
             if (board[r][c] === "") {
                 moves.push({ row: r, col: c });
             } else {
-                if (tour.ennemyPlayer.pieces.includes(board[r][c])) {
+                if (ennemyPieces.includes(board[r][c])) {
                     moves.push({ row: r, col: c });
                 }
                 break;
@@ -601,36 +584,40 @@ function find_pieces(piece,board){
 
 // function echec(tour, board) {
 //     // Trouve la position du roi ennemi
-//     if (tour.currentPlayer.isBlackPlayer === true){
-//         const [kingRow, kingCol] = find_pieces('k', board); 
+//     let kingRow, kingCol;
+//     if (player.turn === true) {
+//         attackingPlayer = player;
+//         [kingRow, kingCol] = find_pieces('k', board); // Roi noir (adverse) si c'est au joueur blanc de jouer
+//     } else {
+//         attackingPlayer = ennemyPlayer;
+//         [kingRow, kingCol] = find_pieces('K', board); // Roi blanc (adverse) si c'est au joueur noir de jouer
 //     }
-//     else{
-//         const [kingRow, kingCol] = find_pieces('K', board);
-//     }
-//     let casesAttaquees = [];
-//     let allPositions = [];
 
-//     tour.currentPlayer.pieces.forEach(piece => {
-//         const piecePosition = find_pieces(piece, board); // Trouve la position de la pièce
-//         allPositions.push(piecePosition);
-//     });
-//     // Parcourt chaque pièce du joueur courant
-//     tour.currentPlayer.pieces.forEach(piece => {
-//         const pieceMoves = highlightMoves(piece, board, ); // On suppose que cette fonction renvoie un tableau de cases accessibles
-        
-//         // Ajoute chaque case attaquée par la pièce aux cases attaquées
-//         casesAttaquees = casesAttaquees.concat(pieceMoves);
-//     });
+//     let allPositions = [];
 
-//     // Vérifie si le roi ennemi est attaqué
-//     return casesAttaquees.some(([row, col]) => row === kingRow && col === kingCol);
+//     for (let i = 0; i < board.length; i++) {
+//         for (let j = 0; j < board[i].length; j++) {
+//             const piece = board[i][j];
+//             if (piece) {
+//                 const moves = highlightMoves(piece, board, i, j);
+//                 allPositions.push({ piece, position: { i, j }, moves });
+
+//                 // 🔍 Vérifie si un des mouvements possibles atteint le roi
+//                 for (let move of moves) {
+//                     if (move.i === kingRow && move.j === kingCol) {
+//                         console.log(`Le roi est en échec par la pièce ${piece} en position (${i}, ${j})`);
+//                         return true; // Roi est en échec
+//                     }
+//                 }
+//             }
+//         }
+//     }
 // }
 function movePiece(piece, newRow, newCol) {
     if (!piece) return;
 
     // Vérifier si le mouvement est valide
-    const validMoves = highlightMoves(tour,piece, selectedPosition.row, selectedPosition.col);
-    console.log(validMoves)
+    const validMoves = highlightMoves(tour, piece, selectedPosition.row, selectedPosition.col);
 
     // Vérifier que validMoves est un tableau et qu'il contient des objets avec { row, col }
     const isValidMove = Array.isArray(validMoves) && validMoves.some(m => m.row === newRow && m.col === newCol);