projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[Titan] Fix moves notation
[vchess.git]
/
client
/
src
/
variants
/
Dobutsu.js
diff --git
a/client/src/variants/Dobutsu.js
b/client/src/variants/Dobutsu.js
index
a5c0386
..
da632b8
100644
(file)
--- a/
client/src/variants/Dobutsu.js
+++ b/
client/src/variants/Dobutsu.js
@@
-16,6
+16,10
@@
export class DobutsuRules extends ChessRules {
return true;
}
return true;
}
+ get showFirstTurn() {
+ return true;
+ }
+
static IsGoodFen(fen) {
if (!ChessRules.IsGoodFen(fen)) return false;
const fenParsed = V.ParseFen(fen);
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);
}
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);
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");
}
getPotentialElephantMoves(sq) {
return super.getSlideNJumpMoves(sq, V.steps[V.BISHOP], "oneStep");
}