X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FClorange.js;h=30256fa6f8d0d1074d91f018814c1e069d19a79d;hb=HEAD;hp=e96d8514f26041f92ecafd6c65b25eb4d52a8865;hpb=165530a519288327f3a6364a43f1b9e73d944a20;p=vchess.git diff --git a/client/src/variants/Clorange.js b/client/src/variants/Clorange.js index e96d8514..30256fa6 100644 --- a/client/src/variants/Clorange.js +++ b/client/src/variants/Clorange.js @@ -2,6 +2,7 @@ import { ChessRules, PiPo, Move } from "@/base_rules"; import { ArrayFun } from "@/utils/array"; export class ClorangeRules extends ChessRules { + static IsGoodFen(fen) { if (!ChessRules.IsGoodFen(fen)) return false; const fenParsed = V.ParseFen(fen); @@ -19,9 +20,9 @@ export class ClorangeRules extends ChessRules { ); } - static GenRandInitFen(randomness) { + static GenRandInitFen(options) { // Capturing and non-capturing reserves: - return ChessRules.GenRandInitFen(randomness) + " 00000000000000000000"; + return ChessRules.GenRandInitFen(options) + " 00000000000000000000"; } getFen() { @@ -194,22 +195,11 @@ export class ClorangeRules extends ChessRules { return moves; } - getSlideNJumpMoves([x, y], steps, oneStep) { - let moves = []; - const canTake = ChessRules.PIECES.includes(this.getPiece(x, y)); - outerLoop: for (let step of steps) { - let i = x + step[0]; - let j = y + step[1]; - while (V.OnBoard(i, j) && this.board[i][j] == V.EMPTY) { - moves.push(this.getBasicMove([x, y], [i, j])); - if (oneStep) continue outerLoop; - i += step[0]; - j += step[1]; - } - if (V.OnBoard(i, j) && canTake && this.canTake([x, y], [i, j])) - moves.push(this.getBasicMove([x, y], [i, j])); - } - return moves; + canTake([x1, y1], [x2, y2]) { + return ( + this.getColor(x1, y1) !== this.getColor(x2, y2) && + ChessRules.PIECES.includes(this.getPiece(x1, y1)) + ); } getAllValidMoves() { @@ -314,4 +304,5 @@ export class ClorangeRules extends ChessRules { move.appear[0].p != V.PAWN ? move.appear[0].p.toUpperCase() : ""; return piece + "@" + V.CoordsToSquare(move.end); } + };