X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FUpsidedown.js;h=207682408186ec6d92fdb730082f9c42c4b71fb2;hb=32f6285ee325a14286562a53baefc647201df2af;hp=538fb4a896f3f733990cdf86c3cd603d3be2ca4d;hpb=6808d7a16ec1e761c6a2dffec2281c96953e4d89;p=vchess.git diff --git a/client/src/variants/Upsidedown.js b/client/src/variants/Upsidedown.js index 538fb4a8..20768240 100644 --- a/client/src/variants/Upsidedown.js +++ b/client/src/variants/Upsidedown.js @@ -2,27 +2,30 @@ import { ChessRules } from "@/base_rules"; import { randInt } from "@/utils/alea"; import { ArrayFun } from "@/utils/array"; -export const VariantRules = class UpsidedownRules extends ChessRules { +export class UpsidedownRules extends ChessRules { static get HasFlags() { return false; } - static get HasEnpassant() { + static get HasCastle() { return false; } - getPotentialKingMoves(sq) { - // No castle - return this.getSlideNJumpMoves( - sq, - V.steps[V.ROOK].concat(V.steps[V.BISHOP]), - "oneStep" - ); + static get HasEnpassant() { + return false; } - static GenRandInitFen() { + static GenRandInitFen(randomness) { + if (randomness == 0) + return "RNBQKBNR/PPPPPPPP/8/8/8/8/pppppppp/rnbqkbnr w 0"; + let pieces = { w: new Array(8), b: new Array(8) }; for (let c of ["w", "b"]) { + if (c == 'b' && randomness == 1) { + pieces['b'] = pieces['w']; + break; + } + let positions = ArrayFun.range(8); let randIndex = randInt(8); @@ -73,4 +76,8 @@ export const VariantRules = class UpsidedownRules extends ChessRules { " w 0" ); //no castle, no en-passant } + + static get SEARCH_DEPTH() { + return 2; + } };