X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FMinishogi.js;h=9ae19231c99fa36abf86d3989daace46562838e0;hb=21704b041240cb440d03cfa64a90ed0be6f28415;hp=ae5876fe54b9196beeaab60b4df9a84f95586815;hpb=e2f204eda8630746cb951889da01241b1e5f5733;p=vchess.git diff --git a/client/src/variants/Minishogi.js b/client/src/variants/Minishogi.js index ae5876fe..9ae19231 100644 --- a/client/src/variants/Minishogi.js +++ b/client/src/variants/Minishogi.js @@ -1,7 +1,8 @@ -import { ChessRules } from "@/base_rules"; -import { ShogiRules } from "@/variants/Shogi"; +import { ChessRules, PiPo, Move } from "@/base_rules"; +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; } + };