X-Git-Url: https://git.auder.net/?p=xogo.git;a=blobdiff_plain;f=base_rules.js;fp=base_rules.js;h=217d0556f1c6402bc9ac3c12b4539b3f6e39b8f4;hp=0f89cc429b8c97da44272d3add07813c90df776f;hb=3232aba3419f129c70d5edd9a4ded1fefc146ea0;hpb=130a166fd08355be5f2dfc923777c1c6d03f09ce diff --git a/base_rules.js b/base_rules.js index 0f89cc4..217d055 100644 --- a/base_rules.js +++ b/base_rules.js @@ -338,7 +338,7 @@ export default class ChessRules { getReserveFen(o) { if (o.init) - return "000000000000"; + return Array(2 * V.ReserveArray.length).fill('0').join(""); return ( ['w', 'b'].map(c => Object.values(this.reserve[c]).join("")).join("") ); @@ -416,14 +416,14 @@ export default class ChessRules { } // Some additional variables from FEN (variant dependant) - setOtherVariables(fenParsed, pieceArray) { + setOtherVariables(fenParsed) { // Set flags and enpassant: if (this.hasFlags) this.setFlags(fenParsed.flags); if (this.hasEnpassant) this.epSquare = this.getEpSquare(fenParsed.enpassant); if (this.hasReserve && !this.isDiagram) - this.initReserves(fenParsed.reserve, pieceArray); + this.initReserves(fenParsed.reserve); if (this.options["crazyhouse"]) this.initIspawn(fenParsed.ispawn); if (this.options["teleport"]) { @@ -441,14 +441,16 @@ export default class ChessRules { } // ordering as in pieces() p,r,n,b,q,k - initReserves(reserveStr, pieceArray) { - if (!pieceArray) - pieceArray = ['p', 'r', 'n', 'b', 'q', 'k']; + static get ReserveArray() { + return ['p', 'r', 'n', 'b', 'q', 'k']; + } + + initReserves(reserveStr) { const counts = reserveStr.split("").map(c => parseInt(c, 36)); - const L = pieceArray.length; + const L = V.ReserveArray.length; this.reserve = { - w: ArrayFun.toObject(pieceArray, counts.slice(0, L)), - b: ArrayFun.toObject(pieceArray, counts.slice(L, 2 * L)) + w: ArrayFun.toObject(V.ReserveArray, counts.slice(0, L)), + b: ArrayFun.toObject(V.ReserveArray, counts.slice(L, 2 * L)) }; }