X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FDobutsu.js;h=da632b839d68df016b61dda701689de10bf1ba91;hb=b27300c2951adcc67acbf4b822267dc102895ce3;hp=a5c038680a63c3f13ed7d58d5b5a6a250c5e26c8;hpb=6c00a6e55209930057bcf040cf444f40e7d47030;p=vchess.git diff --git a/client/src/variants/Dobutsu.js b/client/src/variants/Dobutsu.js index a5c03868..da632b83 100644 --- a/client/src/variants/Dobutsu.js +++ b/client/src/variants/Dobutsu.js @@ -16,6 +16,10 @@ export class DobutsuRules extends ChessRules { return true; } + get showFirstTurn() { + return true; + } + static IsGoodFen(fen) { if (!ChessRules.IsGoodFen(fen)) return false; const fenParsed = V.ParseFen(fen); @@ -177,6 +181,7 @@ export class DobutsuRules extends ChessRules { } switch (this.getPiece(sq[0], sq[1])) { case V.PAWN: return this.getPotentialPawnMoves(sq); + case V.HEN: return this.getPotentialHenMoves(sq); case V.ELEPHANT: return this.getPotentialElephantMoves(sq); case V.GIRAFFE: return this.getPotentialGiraffeMoves(sq); case V.KING: return super.getPotentialKingMoves(sq); @@ -198,6 +203,13 @@ export class DobutsuRules extends ChessRules { } } + getPotentialHenMoves(sq) { + const c = this.turn; + const forward = (c == 'w' ? -1 : 1); + const steps = V.steps[V.ROOK].concat([[forward, 1], [forward, -1]]); + return super.getSlideNJumpMoves(sq, steps, "oneStep"); + } + getPotentialElephantMoves(sq) { return super.getSlideNJumpMoves(sq, V.steps[V.BISHOP], "oneStep"); }