X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FBaroque.js;h=7abb77d47776add03ef39119de8ee56651b9e4c9;hb=4313762da3237b04f204e121a20cab3ba7bb5dd2;hp=1e02cdf7f957c47b1e03190e9ad18877aa8854db;hpb=e90bafa8fb5fb7641728231bf2398590d96c672a;p=vchess.git diff --git a/client/src/variants/Baroque.js b/client/src/variants/Baroque.js index 1e02cdf7..7abb77d4 100644 --- a/client/src/variants/Baroque.js +++ b/client/src/variants/Baroque.js @@ -3,6 +3,7 @@ import { ArrayFun } from "@/utils/array"; import { shuffle } from "@/utils/alea"; export class BaroqueRules extends ChessRules { + static get HasFlags() { return false; } @@ -38,7 +39,7 @@ export class BaroqueRules extends ChessRules { this.kingPos["w"] = [i, k]; break; default: { - const num = parseInt(position[i].charAt(j)); + const num = parseInt(position[i].charAt(j), 10); if (!isNaN(num)) k += num - 1; } } @@ -106,23 +107,11 @@ export class BaroqueRules extends ChessRules { } } - getSlideNJumpMoves([x, y], steps, oneStep) { - const piece = this.getPiece(x, y); - let moves = []; - 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 !== undefined) continue outerLoop; - i += step[0]; - j += step[1]; - } - // Only king can take on occupied square: - if (piece == V.KING && V.OnBoard(i, j) && this.canTake([x, y], [i, j])) - moves.push(this.getBasicMove([x, y], [i, j])); - } - return moves; + canTake([x1, y1], [x2, y2]) { + return ( + this.getPiece(x1, y1) == V.KING && + this.getColor(x1, y1) != this.getColor(x2, y2) + ); } // Modify capturing moves among listed pawn moves @@ -530,15 +519,15 @@ export class BaroqueRules extends ChessRules { return false; } - static GenRandInitFen(randomness) { - if (randomness == 0) + static GenRandInitFen(options) { + if (options.randomness == 0) // Deterministic: return "rnbkqbnm/pppppppp/8/8/8/8/PPPPPPPP/MNBQKBNR w 0"; let pieces = { w: new Array(8), b: new Array(8) }; // Shuffle pieces on first and last rank for (let c of ["w", "b"]) { - if (c == 'b' && randomness == 1) { + if (c == 'b' && options.randomness == 1) { pieces['b'] = pieces['w']; break; } @@ -586,4 +575,5 @@ export class BaroqueRules extends ChessRules { if (move.vanish.length > 1 && move.appear[0].p != V.KING) notation += "X"; return notation; } + };