X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FCircular.js;h=d6b431f6f29a0777c99ce7dde6fed8931918cd00;hb=3a2a7b5fd3c6bfd0752838094c27e1fb6172d109;hp=93df8efcca29147736aee2b146f14612e250ae8b;hpb=7ba4a5bc5b64e19a1e7f26aa232d5c50770d07ad;p=vchess.git diff --git a/client/src/variants/Circular.js b/client/src/variants/Circular.js index 93df8efc..d6b431f6 100644 --- a/client/src/variants/Circular.js +++ b/client/src/variants/Circular.js @@ -3,6 +3,10 @@ import { ArrayFun } from "@/utils/array"; import { randInt, shuffle } from "@/utils/alea"; export const VariantRules = class CircularRules extends ChessRules { + static get HasCastle() { + return false; + } + static get HasEnpassant() { return false; } @@ -31,7 +35,6 @@ export const VariantRules = class CircularRules extends ChessRules { } static GenRandInitFen(randomness) { - if (!randomness) randomness = 2; if (randomness == 0) return "8/8/pppppppp/rnbqkbnr/8/8/PPPPPPPP/RNBQKBNR w 0 1111111111111111"; @@ -166,8 +169,7 @@ export const VariantRules = class CircularRules extends ChessRules { filterValid(moves) { const filteredMoves = super.filterValid(moves); // If at least one full move made, everything is allowed: - if (this.movesCount >= 2) - return filteredMoves; + if (this.movesCount >= 2) return filteredMoves; // Else, forbid check: const oppCol = V.GetOppCol(this.turn); return filteredMoves.filter(m => { @@ -224,15 +226,11 @@ export const VariantRules = class CircularRules extends ChessRules { return flags; } - updateVariables(move) { + postPlay(move) { + super.postPlay(move); const c = move.vanish[0].c; - const secondRank = {"w":6, "b":2}; - // Update king position + flags - if (move.vanish[0].p == V.KING && move.appear.length > 0) { - this.kingPos[c][0] = move.appear[0].x; - this.kingPos[c][1] = move.appear[0].y; - } - else if (move.vanish[0].p == V.PAWN && secondRank[c] == move.start.x) + const secondRank = { "w": 6, "b": 2 }; + if (move.vanish[0].p == V.PAWN && secondRank[c] == move.start.x) // This move turns off a 2-squares pawn flag this.pawnFlags[c][move.start.y] = false; } @@ -247,4 +245,8 @@ export const VariantRules = class CircularRules extends ChessRules { k: 1000 }; } + + static get SEARCH_DEPTH() { + return 2; + } };