return true;
}
+ get showFirstTurn() {
+ return true;
+ }
+
static IsGoodFen(fen) {
if (!ChessRules.IsGoodFen(fen)) return false;
const fenParsed = V.ParseFen(fen);
}
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);
}
}
+ 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");
}