From: Benjamin Auder Date: Sun, 1 Mar 2020 18:07:13 +0000 (+0100) Subject: Fix Grasshopper variant X-Git-Url: https://git.auder.net/%7B%7B%20asset%28%27mixstore/images/assets/doc/current/git-logo.png?a=commitdiff_plain;h=1eb6c9dd80ece517091d1763ea2e253315a006c8;p=vchess.git Fix Grasshopper variant --- diff --git a/client/src/variants/Grasshopper.js b/client/src/variants/Grasshopper.js index 043c0fc4..58b12406 100644 --- a/client/src/variants/Grasshopper.js +++ b/client/src/variants/Grasshopper.js @@ -78,56 +78,17 @@ export const VariantRules = class GrasshopperRules extends ChessRules { static get VALUES() { return Object.assign( - // TODO: grasshoppers power decline when less pieces on board... - { g: 3 }, + // TODO: grasshoppers power decline with less pieces on board... + { g: 2 }, ChessRules.VALUES ); } static GenRandInitFen() { - let pieces = { w: new Array(10), b: new Array(10) }; - for (let c of ["w", "b"]) { - let positions = ArrayFun.range(8); - - // Get random squares for grasshoppers (unconstrained) - let randIndex = randInt(8); - const grasshopper1Pos = positions[randIndex]; - positions.splice(randIndex, 1); - randIndex = randInt(7); - const grasshopper2Pos = positions[randIndex]; - positions.splice(randIndex, 1); - - // Knights - randIndex = randInt(6); - let knight1Pos = positions[randIndex]; - positions.splice(randIndex, 1); - randIndex = randInt(5); - let knight2Pos = positions[randIndex]; - positions.splice(randIndex, 1); - - // Queen - randIndex = randInt(4); - let queenPos = positions[randIndex]; - positions.splice(randIndex, 1); - - let rook1Pos = positions[0]; - let kingPos = positions[1]; - let rook2Pos = positions[2]; - - pieces[c][rook1Pos] = "r"; - pieces[c][knight1Pos] = "n"; - pieces[c][grasshopper1Pos] = "g"; - pieces[c][queenPos] = "q"; - pieces[c][kingPos] = "k"; - pieces[c][grasshopper2Pos] = "g"; - pieces[c][knight2Pos] = "n"; - pieces[c][rook2Pos] = "r"; - } - return ( - pieces["b"].join("") + - "/pppppppp/8/8/8/8/PPPPPPPP/" + - pieces["w"].join("").toUpperCase() + - " w 0 1111 -" - ); + return ChessRules.GenRandInitFen() + .replace( + "/pppppppp/8/8/8/8/PPPPPPPP/", + "/gggggggg/pppppppp/8/8/PPPPPPPP/GGGGGGGG/" + ); } };