chessExt/fen.js
2026-04-09 15:09:44 -04:00

34 lines
886 B
JavaScript

function getBoardFen() {
let fen = "";
for (let i = 8; i >= 1; i--) {
for (let j = 1; j <= 8; j++) {
if (j === 1 && i !== 8) fen += "/";
let classes = document.querySelectorAll(`.piece.square-${j}${i}`)[0]?.classList ?? null;
let piece = null;
if (classes) {
for (let cls of classes.values()) {
if (cls.length === 2) piece = cls;
}
}
if (piece === null) {
let last = fen.slice(-1);
fen = (!isNaN(Number(last)) && last !== "")
? fen.slice(0, -1) + (Number(last) + 1)
: fen + "1";
} else if (piece[0] === "b") {
fen += piece[1];
} else {
fen += piece[1].toUpperCase();
}
}
}
return fen;
}
function getPlayerColour() {
const board = document.querySelector("wc-chess-board");
return board?.classList.contains("flipped") ? "b" : "w";
}