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