X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FGrand.js;h=4ea521e04c4336fcc2120e00b16a8b45a6846303;hb=f9c36b2da005b596ad656f4b6cc4e09ef3c656f1;hp=d3659af8e31abc5af70cd8ac7bb3a1a29585d29e;hpb=a97bdbda4ecf83645d409b717e36828784d1450d;p=vchess.git diff --git a/client/src/variants/Grand.js b/client/src/variants/Grand.js index d3659af8..4ea521e0 100644 --- a/client/src/variants/Grand.js +++ b/client/src/variants/Grand.js @@ -39,6 +39,16 @@ export const VariantRules = class GrandRules extends ChessRules { return super.getFen() + " " + this.getCapturedFen(); } + getFenForRepeat() { + return ( + this.getBaseFen() + "_" + + this.getTurnFen() + "_" + + this.getFlagsFen() + "_" + + this.getEnpassantFen() + "_" + + this.getCapturedFen() + ); + } + getCapturedFen() { let counts = [...Array(14).fill(0)]; let i = 0; @@ -316,10 +326,20 @@ export const VariantRules = class GrandRules extends ChessRules { return 2; } - static GenRandInitFen() { + static GenRandInitFen(randomness) { + if (randomness == 0) { + return "rnbqkmcbnr/pppppppppp/10/10/10/10/10/10/PPPPPPPPPP/RNBQKMCBNR " + + "w 0 1111 - 00000000000000"; + } + let pieces = { w: new Array(10), b: new Array(10) }; // Shuffle pieces on first and last rank for (let c of ["w", "b"]) { + if (c == 'b' && randomness == 1) { + pieces['b'] = pieces['w']; + break; + } + let positions = ArrayFun.range(10); // Get random squares for bishops