- getFen() {
- return super.getFen() + " " + this.getCapturedFen();
- }
-
- getFenForRepeat() {
- return super.getFenForRepeat() + "_" + this.getCapturedFen();
- }
-
- getCapturedFen() {
- let counts = [...Array(12).fill(0)];
- let i = 0;
- for (let j = 0; j < V.PIECES.length; j++) {
- if ([V.KING, V.PAWN].includes(V.PIECES[j]))
- // No king captured, and pawns don't promote in pawns
- continue;
- counts[i] = this.captured["w"][V.PIECES[j]];
- counts[6 + i] = this.captured["b"][V.PIECES[j]];
- i++;
- }
- return counts.join("");
- }
-
- setOtherVariables(fen) {
- super.setOtherVariables(fen);
- const captured =
- V.ParseFen(fen).captured.split("").map(x => parseInt(x, 10));
- // Initialize captured pieces' counts from FEN
- this.captured = {
- w: {
- [V.ROOK]: captured[0],
- [V.KNIGHT]: captured[1],
- [V.BISHOP]: captured[2],
- [V.QUEEN]: captured[3],
- [V.MARSHALL]: captured[4],
- [V.CARDINAL]: captured[5]
- },
- b: {
- [V.ROOK]: captured[6],
- [V.KNIGHT]: captured[7],
- [V.BISHOP]: captured[8],
- [V.QUEEN]: captured[9],
- [V.MARSHALL]: captured[10],
- [V.CARDINAL]: captured[11]
- }
- };
- }
-