X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FKnightmate.js;h=0ac7ebed29ad356b9d9492abd37f211f92e3e0a4;hp=c0e84c63caf62cd14d472db6b159428080b45cd7;hb=7ba4a5bc5b64e19a1e7f26aa232d5c50770d07ad;hpb=de520e01c680ca3d74364f73cd29c026b86a883d diff --git a/client/src/variants/Knightmate.js b/client/src/variants/Knightmate.js index c0e84c63..0ac7ebed 100644 --- a/client/src/variants/Knightmate.js +++ b/client/src/variants/Knightmate.js @@ -15,56 +15,9 @@ export const VariantRules = class KnightmateRules extends ChessRules { return ([V.KING, V.COMMONER].includes(b[1]) ? "Knightmate/" : "") + b; } - static GenRandInitFen() { - let pieces = { w: new Array(8), b: new Array(8) }; - // Shuffle pieces on first and last rank - for (let c of ["w", "b"]) { - let positions = ArrayFun.range(8); - - // Get random squares for bishops - let randIndex = 2 * randInt(4); - const bishop1Pos = positions[randIndex]; - let randIndex_tmp = 2 * randInt(4) + 1; - const bishop2Pos = positions[randIndex_tmp]; - positions.splice(Math.max(randIndex, randIndex_tmp), 1); - positions.splice(Math.min(randIndex, randIndex_tmp), 1); - - // Get random squares for commoners - randIndex = randInt(6); - const commoner1Pos = positions[randIndex]; - positions.splice(randIndex, 1); - randIndex = randInt(5); - const commoner2Pos = positions[randIndex]; - positions.splice(randIndex, 1); - - // Get random square for queen - randIndex = randInt(4); - const queenPos = positions[randIndex]; - positions.splice(randIndex, 1); - - // Rooks and king positions are now fixed, - // because of the ordering rook-king-rook - const rook1Pos = positions[0]; - const kingPos = positions[1]; - const rook2Pos = positions[2]; - - // Finally put the shuffled pieces in the board array - pieces[c][rook1Pos] = "r"; - pieces[c][commoner1Pos] = "c"; - pieces[c][bishop1Pos] = "b"; - pieces[c][queenPos] = "q"; - pieces[c][kingPos] = "k"; - pieces[c][bishop2Pos] = "b"; - pieces[c][commoner2Pos] = "c"; - pieces[c][rook2Pos] = "r"; - } - // Add turn + flags + enpassant - return ( - pieces["b"].join("") + - "/pppppppp/8/8/8/8/PPPPPPPP/" + - pieces["w"].join("").toUpperCase() + - " w 0 1111 -" - ); + static GenRandInitFen(randomness) { + return ChessRules.GenRandInitFen(randomness) + .replace(/n/g, 'c').replace(/N/g, 'C'); } getPotentialMovesFrom([x, y]) {