X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FCrazyhouse.js;h=16db148dba460ca06fa91c18d74bb5b1c11089cd;hb=9d4a02185291aad8d8af5d35c1d6a808a1e11c9f;hp=89b6f83005d4588d89df7d1bfd291934b3f32fc2;hpb=6808d7a16ec1e761c6a2dffec2281c96953e4d89;p=vchess.git diff --git a/client/src/variants/Crazyhouse.js b/client/src/variants/Crazyhouse.js index 89b6f830..16db148d 100644 --- a/client/src/variants/Crazyhouse.js +++ b/client/src/variants/Crazyhouse.js @@ -28,8 +28,8 @@ export const VariantRules = class CrazyhouseRules extends ChessRules { }); } - static GenRandInitFen() { - return ChessRules.GenRandInitFen() + " 0000000000 -"; + static GenRandInitFen(randomness) { + return ChessRules.GenRandInitFen(randomness) + " 0000000000 -"; } getFen() { @@ -38,6 +38,17 @@ export const VariantRules = class CrazyhouseRules extends ChessRules { ); } + getFenForRepeat() { + return ( + this.getBaseFen() + "_" + + this.getTurnFen() + "_" + + this.getFlagsFen() + "_" + + this.getEnpassantFen() + "_" + + this.getReserveFen() + "_" + + this.getPromotedFen() + ); + } + getReserveFen() { let counts = new Array(10); for ( @@ -55,11 +66,11 @@ export const VariantRules = class CrazyhouseRules extends ChessRules { let res = ""; for (let i = 0; i < V.size.x; i++) { for (let j = 0; j < V.size.y; j++) { - if (this.promoted[i][j]) res += V.CoordsToSquare({ x: i, y: j }); + if (this.promoted[i][j]) res += V.CoordsToSquare({ x: i, y: j }) + ","; } } + // Remove last comma: if (res.length > 0) res = res.slice(0, -1); - //remove last comma else res = "-"; return res; } @@ -87,8 +98,8 @@ export const VariantRules = class CrazyhouseRules extends ChessRules { this.promoted = ArrayFun.init(V.size.x, V.size.y, false); if (fenParsed.promoted != "-") { for (let square of fenParsed.promoted.split(",")) { - const [x, y] = V.SquareToCoords(square); - this.promoted[x][y] = true; + const coords = V.SquareToCoords(square); + this.promoted[coords.x][coords.y] = true; } } } @@ -104,9 +115,17 @@ export const VariantRules = class CrazyhouseRules extends ChessRules { } // Used by the interface: - getReservePpath(color, index) { + getReservePpath(index, color) { return color + V.RESERVE_PIECES[index]; } +// // Version if some day I have pieces with numbers printed on it: +// getReservePpath(index, color) { +// return ( +// "Crazyhouse/" + +// color + V.RESERVE_PIECES[index] + +// "_" + this.vr.reserve[playingColor][V.RESERVE_PIECES[i]] +// ); +// } // Ordering on reserve pieces static get RESERVE_PIECES() { @@ -208,8 +227,9 @@ export const VariantRules = class CrazyhouseRules extends ChessRules { } static get SEARCH_DEPTH() { + // High branching factor return 2; - } //high branching factor + } evalPosition() { let evaluation = super.evalPosition(); @@ -229,9 +249,4 @@ export const VariantRules = class CrazyhouseRules extends ChessRules { move.appear[0].p != V.PAWN ? move.appear[0].p.toUpperCase() : ""; return piece + "@" + V.CoordsToSquare(move.end); } - - getLongNotation(move) { - if (move.vanish.length > 0) return super.getLongNotation(move); - return "@" + V.CoordsToSquare(move.end); - } };