X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FChakart.js;h=1795e30c483ed3db360e0c65e71ec2723431a0ee;hb=7e8a7ea1cb66adb4a987badfb0a3c2f99a21bd0a;hp=73d7cfc9fe3ac25f98c9f3a0e02a1c39baae6c57;hpb=7c8d0174f68dfcda183848d85588e58f5d347cda;p=vchess.git diff --git a/client/src/variants/Chakart.js b/client/src/variants/Chakart.js index 73d7cfc9..1795e30c 100644 --- a/client/src/variants/Chakart.js +++ b/client/src/variants/Chakart.js @@ -4,6 +4,7 @@ import { ArrayFun } from "@/utils/array"; import { randInt } from "@/utils/alea"; export class ChakartRules extends ChessRules { + static get PawnSpecs() { return SuicideRules.PawnSpecs; } @@ -148,7 +149,7 @@ export class ChakartRules extends ChessRules { if (['K', 'k', 'L', 'l'].includes(row[i])) kings[row[i]]++; if (V.PIECES.includes(row[i].toLowerCase())) sumElts++; else { - const num = parseInt(row[i]); + const num = parseInt(row[i], 10); if (isNaN(num)) return false; sumElts += num; } @@ -210,24 +211,25 @@ export class ChakartRules extends ChessRules { setOtherVariables(fen) { super.setOtherVariables(fen); - const fenParsed = V.ParseFen(fen); // Initialize captured pieces' counts from FEN + const captured = + V.ParseFen(fen).captured.split("").map(x => parseInt(x, 10)); 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.KING]: parseInt(fenParsed.captured[5]) + [V.PAWN]: captured[0], + [V.ROOK]: captured[1], + [V.KNIGHT]: captured[2], + [V.BISHOP]: captured[3], + [V.QUEEN]: captured[4], + [V.KING]: captured[5] }, b: { - [V.PAWN]: parseInt(fenParsed.captured[6]), - [V.ROOK]: parseInt(fenParsed.captured[7]), - [V.KNIGHT]: parseInt(fenParsed.captured[8]), - [V.BISHOP]: parseInt(fenParsed.captured[9]), - [V.QUEEN]: parseInt(fenParsed.captured[10]), - [V.KING]: parseInt(fenParsed.captured[11]) + [V.PAWN]: captured[6], + [V.ROOK]: captured[7], + [V.KNIGHT]: captured[8], + [V.BISHOP]: captured[9], + [V.QUEEN]: captured[10], + [V.KING]: captured[11] } }; this.firstMove = []; @@ -393,7 +395,7 @@ export class ChakartRules extends ChessRules { return ( V.OnBoard(x + forward, y) && ( - this.board[x + forward][y] != oppCol || + this.board[x + forward][y] == V.EMPTY || ( V.OnBoard(x + forward, y + 1) && this.board[x + forward][y + 1] != V.EMPTY && @@ -1469,4 +1471,5 @@ export class ChakartRules extends ChessRules { } return notation; } + };