diff --git a/htdocs/chess.js b/htdocs/chess.js index f71fd5e7e99ca2e0871dee033af9128e08f479dd..9ed64ff712e8d72fefcfe0226f2db0723dcfcba8 100644 --- a/htdocs/chess.js +++ b/htdocs/chess.js @@ -79,7 +79,6 @@ let selectedPiece = null; let selectedPosition = null; canvas.addEventListener("click", function(event) { - console.log("clické") const col = Math.floor(event.offsetX / size); const row = Math.floor(event.offsetY / size); @@ -96,26 +95,68 @@ function selectPiece(row, col) { if (piece !== "") { // Vérifier que ce n'est pas une case vide selectedPiece = piece; selectedPosition = { row, col }; + highlightMoves(piece, row, col); + } +} +function highlightMoves(piece, row, col) { + let moves = []; + if (piece.toLowerCase() === "p") { + if(row===6){ + if (board[row - 2][col] === "") { + moves.push({row: row - 2,col}); + } + } + let direction = -1; // Pion blanc monte, pion noir descend + if (board[row + direction] && board[row + direction][col] === "") { + moves.push({ row: row + direction, col }); + } } + + + + return moves; + } + + + +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) { if (!selectedPiece) return; // Vérifier si le mouvement est valide - //const validMoves = highlightMoves(selectedPiece, selectedPosition.row, selectedPosition.col); - //const isValidMove = validMoves.some(m => m.row === newRow && m.col === newCol); + const validMoves = highlightMoves(selectedPiece, selectedPosition.row, selectedPosition.col); + console.log(validMoves); // Vérifie la structure des validMoves + + // 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); - //if (isValidMove) { + if (isValidMove) { + // Déplacer la pièce board[newRow][newCol] = selectedPiece; board[selectedPosition.row][selectedPosition.col] = ""; + // Réinitialiser la pièce sélectionnée selectedPiece = null; selectedPosition = null; + // Redessiner le plateau drawBoard(); drawPieces(); - //} + } else { + // Si le mouvement est invalide, tu pourrais afficher un message + console.log("Mouvement invalide !"); + selectedPiece=null; + } } \ No newline at end of file