Skip to content
Snippets Groups Projects
Commit 3120ffc5 authored by De Brettes Thomas's avatar De Brettes Thomas
Browse files
parents d014164d cc6b85e2
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