summaryrefslogtreecommitdiff
path: root/assets/board.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/board.js')
-rw-r--r--assets/board.js45
1 files changed, 23 insertions, 22 deletions
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);