diff --git a/htdocs/chess.js b/htdocs/chess.js
index 4c9e8a86be85a84f440725cecf385f40bc6dda18..10a6d9489f41ad096deb0f477ff38a839717fa85 100644
--- a/htdocs/chess.js
+++ b/htdocs/chess.js
@@ -45,17 +45,31 @@ function drawPieces() {
     for (let row = 0; row < 8; row++) {
         for (let col = 0; col < 8; col++) {
             const piece = board[row][col];
-            if (piece !== "") {
                 let img = new Image();
-                img.src = "chess_pieces/" + pieceImages[piece];
-                img.onload = function () {
-                    ctx.drawImage(img, col * size, row * size, size, size);
-                };
-            }
+                if (piece !== ""){
+                    drawPiece(piece,col,row)
+                }
         }
     }
 }
+function drawPiece(piece, col, row) {
+    let img = new Image();
+    img.src = "chess_pieces/" + pieceImages[piece];
 
+    img.onload = function () {
+        let tempCanvas = document.createElement("canvas");
+        let tempCtx = tempCanvas.getContext("2d");
+
+        tempCanvas.width = size;
+        tempCanvas.height = size;
+
+        // Dessiner l’image sur un canvas temporaire
+        tempCtx.drawImage(img, 0, 0, size, size);
+
+        // Ensuite, dessiner cette image sur le canvas principal
+        ctx.drawImage(tempCanvas, col * size, row * size, size, size);
+    };
+}
 // Fonction principale pour dessiner l'échiquier
 function draw() {
     drawBoard();