projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More consistent Chakart
[vchess.git]
/
client
/
src
/
variants
/
Dobutsu.js
diff --git
a/client/src/variants/Dobutsu.js
b/client/src/variants/Dobutsu.js
index
a5c0386
..
af8c4f6
100644
(file)
--- a/
client/src/variants/Dobutsu.js
+++ b/
client/src/variants/Dobutsu.js
@@
-4,6
+4,10
@@
import { sample, shuffle } from "@/utils/alea";
export class DobutsuRules extends ChessRules {
export class DobutsuRules extends ChessRules {
+ static get Options() {
+ return null;
+ }
+
static get HasFlags() {
return false;
}
static get HasFlags() {
return false;
}
@@
-16,6
+20,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
+185,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,12
+207,19
@@
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, 1);
+ }
+
getPotentialElephantMoves(sq) {
getPotentialElephantMoves(sq) {
- return super.getSlideNJumpMoves(sq, V.steps[V.BISHOP],
"oneStep"
);
+ return super.getSlideNJumpMoves(sq, V.steps[V.BISHOP],
1
);
}
getPotentialGiraffeMoves(sq) {
}
getPotentialGiraffeMoves(sq) {
- return super.getSlideNJumpMoves(sq, V.steps[V.ROOK],
"oneStep"
);
+ return super.getSlideNJumpMoves(sq, V.steps[V.ROOK],
1
);
}
getAllValidMoves() {
}
getAllValidMoves() {