X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FMinishogi.js;h=9ae19231c99fa36abf86d3989daace46562838e0;hb=21704b041240cb440d03cfa64a90ed0be6f28415;hp=83152894adc8c1df5009bdde545012027f60e2bf;hpb=1df59790f9a9ee0496bbe719c52f27c4e7f0b44e;p=vchess.git diff --git a/client/src/variants/Minishogi.js b/client/src/variants/Minishogi.js index 83152894..9ae19231 100644 --- a/client/src/variants/Minishogi.js +++ b/client/src/variants/Minishogi.js @@ -1,7 +1,8 @@ import { ChessRules, PiPo, Move } from "@/base_rules"; -import { ShogiRules } from "@/variants/Shogi"; +import { ShogiRules } from "@/variants/Shogi" export class MinishogiRules extends ShogiRules { + static IsGoodFen(fen) { if (!ChessRules.IsGoodFen(fen)) return false; const fenParsed = V.ParseFen(fen); @@ -42,22 +43,23 @@ export class MinishogiRules extends ShogiRules { setOtherVariables(fen) { super.setOtherVariables(fen); - const fenParsed = V.ParseFen(fen); // Also init reserves (used by the interface to show landable pieces) + const reserve = + V.ParseFen(fen).reserve.split("").map(x => parseInt(x, 10)); this.reserve = { w: { - [V.PAWN]: parseInt(fenParsed.reserve[0]), - [V.ROOK]: parseInt(fenParsed.reserve[1]), - [V.BISHOP]: parseInt(fenParsed.reserve[2]), - [V.GOLD_G]: parseInt(fenParsed.reserve[3]), - [V.SILVER_G]: parseInt(fenParsed.reserve[4]) + [V.PAWN]: reserve[0], + [V.ROOK]: reserve[1], + [V.BISHOP]: reserve[2], + [V.GOLD_G]: reserve[3], + [V.SILVER_G]: reserve[4] }, b: { - [V.PAWN]: parseInt(fenParsed.reserve[5]), - [V.ROOK]: parseInt(fenParsed.reserve[6]), - [V.BISHOP]: parseInt(fenParsed.reserve[7]), - [V.GOLD_G]: parseInt(fenParsed.reserve[8]), - [V.SILVER_G]: parseInt(fenParsed.reserve[9]) + [V.PAWN]: reserve[5], + [V.ROOK]: reserve[6], + [V.BISHOP]: reserve[7], + [V.GOLD_G]: reserve[8], + [V.SILVER_G]: reserve[9] } }; } @@ -126,7 +128,7 @@ export class MinishogiRules extends ShogiRules { return moves; } - getSlideNJumpMoves([x, y], steps, options) { + getSlideNJumpMoves_opt([x, y], steps, options) { options = options || {}; const color = this.turn; const oneStep = options.oneStep; @@ -167,4 +169,5 @@ export class MinishogiRules extends ShogiRules { static get SEARCH_DEPTH() { return 3; } + };