X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FMonochrome.js;h=2d5a912f577319f9ddfeb8070570606fa44e4967;hp=8c74961bccff03af41f391dcc18455fb6c8175b5;hb=306dab5f2087a35669a114587c0415b31145665b;hpb=f9ecc49933b5f541724b73856ba816722ea26c34 diff --git a/client/src/variants/Monochrome.js b/client/src/variants/Monochrome.js index 8c74961b..2d5a912f 100644 --- a/client/src/variants/Monochrome.js +++ b/client/src/variants/Monochrome.js @@ -37,6 +37,10 @@ export class MonochromeRules extends ChessRules { return true; } + getPpath(b) { + return (b[1] == V.KNIGHT ? "Enpassant/" : "") + b; + } + canIplay(side, [x, y]) { const xBounds = side == 'w' ? [4,7] : [0,3]; return this.turn == side && x >= xBounds[0] && x <= xBounds[1]; @@ -60,8 +64,8 @@ export class MonochromeRules extends ChessRules { getPotentialKingMoves(sq) { // King become queen: return ( - this.getSlideNJumpMoves(sq, V.steps[V.ROOK].concat(V.steps[V.BISHOP])); - ) + this.getSlideNJumpMoves(sq, V.steps[V.ROOK].concat(V.steps[V.BISHOP])) + ); } getAllPotentialMoves() { @@ -153,12 +157,18 @@ export class MonochromeRules extends ChessRules { static GenRandInitFen(randomness) { // Remove the en-passant + castle part of the FEN - const fen = ChessRules.GenRandInitFen(randomness).slice(0, -6); + let fen = ChessRules.GenRandInitFen(randomness).slice(0, -6); + // Replace kings with queens + fen = fen.replace("k", "q").replace("K", "Q"); + // Move pawns up: + fen = fen.replace("pppppppp/8","8/pppppppp") + .replace("8/PPPPPPPP","PPPPPPPP/8"); const firstSpace = fen.indexOf(' '); - return ( + // Paint it black: + fen = fen.substr(0, firstSpace).replace(/[A-Z]/g, (c) => c.toLowerCase()) + - fen.substr(firstSpace) - ); + fen.substr(firstSpace); + return fen; } static get SEARCH_DEPTH() {