From c61a59a4dd4a846499e6faf50ecdd87786f5c2df Mon Sep 17 00:00:00 2001 From: Aargh Rai Date: Wed, 25 Feb 2026 20:41:16 +0530 Subject: GOOGLE EN PASSANT --- assets/board.js | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) (limited to 'assets/board.js') diff --git a/assets/board.js b/assets/board.js index 6b8486a..e5a9a2d 100644 --- a/assets/board.js +++ b/assets/board.js @@ -41,14 +41,15 @@ const BLACK_BISHOP = 10; const BLACK_KNIGHT = 11; const BLACK_PAWN = 12; -function trackBitboard(j, i, selected, output) { +let counting_bitboard = 0n; +function trackBitboard(i, selected, output) { const mask = 1n << BigInt(i); if (selected) { - bitboards[j] |= mask; + counting_bitboard |= mask; } else { - bitboards[j] &= ~mask; + counting_bitboard &= ~mask; } - output.textContent = bitboards[j].toString(); + output.textContent = counting_bitboard.toString(); } function checkForPiece(square, bitIndex, set = true) { @@ -101,29 +102,29 @@ window.onload = () => { square.id = 'square-' + bitIndex.toString(); checkForPiece(square, bitIndex); square.onclick = (e) => { - if (!e.ctrlKey) { - const piece = checkForPiece(square, bitIndex, false); - if ( - (hoveringPiece < 0 && piece == null) || - (hoveringPiece >= 0 && piece != null) - ) return; - if (hoveringPiece < 0) { - setHoverpiece(piece); - square.style.backgroundImage = `none`; - bitboards[piece] &= ~(1n << BigInt(bitIndex)); + if (e.ctrlKey) { + const selected = square.classList.contains("selected"); + selectedAction(bitIndex, !selected, output); + if (selected) { + square.classList.remove("selected"); } else { - square.style.backgroundImage = `url(${assets[hoveringPiece]})`; - bitboards[hoveringPiece] |= (1n << BigInt(bitIndex)); - setHoverpiece(-1); + square.classList.add("selected"); } return; } - const selected = square.classList.contains("selected"); - selectedAction(0, bitIndex, !selected, output); - if (selected) { - square.classList.remove("selected"); + const piece = checkForPiece(square, bitIndex, false); + if ( + (hoveringPiece < 0 && piece == null) || + (hoveringPiece >= 0 && piece != null) + ) return; + if (hoveringPiece < 0) { + setHoverpiece(piece); + square.style.backgroundImage = `none`; + bitboards[piece] &= ~(1n << BigInt(bitIndex)); } else { - square.classList.add("selected"); + square.style.backgroundImage = `url(${assets[hoveringPiece]})`; + bitboards[hoveringPiece] |= (1n << BigInt(bitIndex)); + setHoverpiece(-1); } }; board.appendChild(square); -- cgit v1.2.3