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"; }