X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FAlapo.js;h=2d2a7900644f8b92d3f27560deab19bf42fc9b9a;hb=4313762da3237b04f204e121a20cab3ba7bb5dd2;hp=6864457ebab8a471ee16f55032f2aa77712edfc5;hpb=0f7762c1d87e21d1c13ff0f38bd234b64b0a29d9;p=vchess.git diff --git a/client/src/variants/Alapo.js b/client/src/variants/Alapo.js index 6864457e..2d2a7900 100644 --- a/client/src/variants/Alapo.js +++ b/client/src/variants/Alapo.js @@ -1,4 +1,6 @@ import { ChessRules } from "@/base_rules"; +import { ArrayFun } from "@/utils/array"; +import { randInt } from "@/utils/alea"; export class AlapoRules extends ChessRules { @@ -32,16 +34,14 @@ export class AlapoRules extends ChessRules { } getPotentialMinirookMoves(sq) { - return super.getSlideNJumpMoves(sq, V.steps[V.ROOK], "oneStep"); + return super.getSlideNJumpMoves(sq, V.steps[V.ROOK], 1); } getPotentialMinibishopMoves(sq) { - return super.getSlideNJumpMoves(sq, V.steps[V.BISHOP], "oneStep"); + return super.getSlideNJumpMoves(sq, V.steps[V.BISHOP], 1); } getPotentialMiniqueenMoves(sq) { - return ( - super.getSlideNJumpMoves( - sq, V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep") - ); + return super.getSlideNJumpMoves( + sq, V.steps[V.ROOK].concat(V.steps[V.BISHOP]), 1); } getPotentialMovesFrom(sq) { @@ -66,8 +66,8 @@ export class AlapoRules extends ChessRules { return "Alapo/" + b + suffix; } - static GenRandInitFen(randomness) { - if (randomness == 0) + static GenRandInitFen(options) { + if (options.randomness == 0) return "rbqqbr/tcssct/6/6/TCSSCT/RBQQBR w 0"; const piece2pawn = { @@ -79,7 +79,7 @@ export class AlapoRules extends ChessRules { let pieces = { w: new Array(6), b: new Array(6) }; // Shuffle pieces on first (and last rank if randomness == 2) for (let c of ["w", "b"]) { - if (c == 'b' && randomness == 1) { + if (c == 'b' && options.randomness == 1) { pieces['b'] = pieces['w']; break; } @@ -113,11 +113,12 @@ export class AlapoRules extends ChessRules { pieces[c][bishop2Pos] = "b"; pieces[c][rook2Pos] = "r"; } + return ( pieces["b"].join("") + "/" + - pieces["b"].map(p => piece2pawn[p]).join() + - "/8/8/8/8/" + - pieces["w"].map(p => piece2pawn[p].toUpperCase()).join() + "/" + + pieces["b"].map(p => piece2pawn[p]).join("") + + "/6/6/" + + pieces["w"].map(p => piece2pawn[p].toUpperCase()).join("") + "/" + pieces["w"].join("").toUpperCase() + " w 0" ); @@ -221,4 +222,15 @@ export class AlapoRules extends ChessRules { return super.getCurrentScore(); } + static get VALUES() { + return { + r: 5, + b: 3, + q: 9, + t: 3, + c: 2, + s: 5 + }; + } + };