34 lines
886 B
JavaScript
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";
|
|
}
|