X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FAlice.js;h=d6fb0ac6954965162aa05931d0f84f3714ea072f;hb=af34341d92d47d14f396e7f4adb81f2a7e9d9a61;hp=d64c077868fe2ac3bd257f8e786f255f26f7d907;hpb=3a2a7b5fd3c6bfd0752838094c27e1fb6172d109;p=vchess.git diff --git a/client/src/variants/Alice.js b/client/src/variants/Alice.js index d64c0778..d6fb0ac6 100644 --- a/client/src/variants/Alice.js +++ b/client/src/variants/Alice.js @@ -2,8 +2,9 @@ import { ChessRules } from "@/base_rules"; import { ArrayFun } from "@/utils/array"; // NOTE: alternative implementation, probably cleaner = use only 1 board -// TODO? atLeastOneMove() would be more efficient if rewritten here (less sideBoard computations) -export const VariantRules = class AliceRules extends ChessRules { +// TODO? atLeastOneMove() would be more efficient if rewritten here +// (less sideBoard computations) +export class AliceRules extends ChessRules { static get ALICE_PIECES() { return { s: "p", @@ -37,7 +38,8 @@ export const VariantRules = class AliceRules extends ChessRules { super.setOtherVariables(fen); const rows = V.ParseFen(fen).position.split("/"); if (this.kingPos["w"][0] < 0 || this.kingPos["b"][0] < 0) { - // INIT_COL_XXX won't be required if Alice kings are found (means 'king moved') + // INIT_COL_XXX won't be required if Alice kings are found + // (it means 'king moved') for (let i = 0; i < rows.length; i++) { let k = 0; //column index on board for (let j = 0; j < rows[i].length; j++) { @@ -80,7 +82,8 @@ export const VariantRules = class AliceRules extends ChessRules { return sideBoard; } - // NOTE: castle & enPassant https://www.chessvariants.com/other.dir/alice.html + // NOTE: castle & enPassant + // https://www.chessvariants.com/other.dir/alice.html getPotentialMovesFrom([x, y], sideBoard) { const pieces = Object.keys(V.ALICE_CODES); const codes = Object.keys(V.ALICE_PIECES); @@ -109,8 +112,11 @@ export const VariantRules = class AliceRules extends ChessRules { if (m.appear.length == 2) { // Castle: appear[i] must be an empty square on the other board for (let psq of m.appear) { - if (this.getSquareOccupation(psq.x, psq.y, 3 - mirrorSide) != V.EMPTY) + if ( + this.getSquareOccupation(psq.x, psq.y, 3 - mirrorSide) != V.EMPTY + ) { return false; + } } } else if (this.board[m.end.x][m.end.y] != V.EMPTY) { // Attempt to capture @@ -229,7 +235,8 @@ export const VariantRules = class AliceRules extends ChessRules { return res; } - getCheckSquares(color) { + getCheckSquares() { + const color = this.turn; const pieces = Object.keys(V.ALICE_CODES); const kp = this.kingPos[color]; const mirrorSide = pieces.includes(this.getPiece(kp[0], kp[1])) ? 1 : 2; @@ -263,10 +270,7 @@ export const VariantRules = class AliceRules extends ChessRules { } getCurrentScore() { - if (this.atLeastOneMove()) - // game not over - return "*"; - + if (this.atLeastOneMove()) return "*"; const pieces = Object.keys(V.ALICE_CODES); const color = this.turn; const kp = this.kingPos[color];