- 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]),
- }
- };
- }
-
- static get size() { return {x:10,y:10}; }
-
- static get MARSHALL() { return 'm'; } //rook+knight
- static get CARDINAL() { return 'c'; } //bishop+knight
-
- static get PIECES()
- {
- return ChessRules.PIECES.concat([V.MARSHALL,V.CARDINAL]);