Skip to content
Snippets Groups Projects
Commit cc6b85e2 authored by Elarouti Adam's avatar Elarouti Adam
Browse files

mouvement pion 2 cases

parent 3e73f962
No related branches found
No related tags found
No related merge requests found
...@@ -79,7 +79,6 @@ let selectedPiece = null; ...@@ -79,7 +79,6 @@ let selectedPiece = null;
let selectedPosition = null; let selectedPosition = null;
canvas.addEventListener("click", function(event) { canvas.addEventListener("click", function(event) {
console.log("clické")
const col = Math.floor(event.offsetX / size); const col = Math.floor(event.offsetX / size);
const row = Math.floor(event.offsetY / size); const row = Math.floor(event.offsetY / size);
...@@ -96,26 +95,68 @@ function selectPiece(row, col) { ...@@ -96,26 +95,68 @@ function selectPiece(row, col) {
if (piece !== "") { // Vérifier que ce n'est pas une case vide if (piece !== "") { // Vérifier que ce n'est pas une case vide
selectedPiece = piece; selectedPiece = piece;
selectedPosition = { row, col }; 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) { function movePiece(newRow, newCol) {
if (!selectedPiece) return; if (!selectedPiece) return;
// Vérifier si le mouvement est valide // Vérifier si le mouvement est valide
//const validMoves = highlightMoves(selectedPiece, selectedPosition.row, selectedPosition.col); const validMoves = highlightMoves(selectedPiece, selectedPosition.row, selectedPosition.col);
//const isValidMove = validMoves.some(m => m.row === newRow && m.col === newCol); console.log(validMoves); // Vérifie la structure des validMoves
//if (isValidMove) { // 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) {
// Déplacer la pièce
board[newRow][newCol] = selectedPiece; board[newRow][newCol] = selectedPiece;
board[selectedPosition.row][selectedPosition.col] = ""; board[selectedPosition.row][selectedPosition.col] = "";
// Réinitialiser la pièce sélectionnée
selectedPiece = null; selectedPiece = null;
selectedPosition = null; selectedPosition = null;
// Redessiner le plateau
drawBoard(); drawBoard();
drawPieces(); drawPieces();
//} } else {
// Si le mouvement est invalide, tu pourrais afficher un message
console.log("Mouvement invalide !");
selectedPiece=null;
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment