);
}
+ static get SomeHiddenMoves() {
+ return true;
+ }
+
static get HasCastle() {
return false;
}
return (
(
m.vanish[0].p == V.KNIGHT &&
- (m.vanish.length == 1 || m.vanish[1].c != m.vanish[0].c)
- )
- ||
- (
- // Promotion attempt
- m.end.x == (m.vanish[0].c == "w" ? 0 : V.size.x - 1) &&
- other.vanish.length == 2 &&
- other.vanish[1].p == V.KNIGHT &&
- other.vanish[1].c == m.vanish[0].c
- )
- ||
- (
- // Moving attempt
- !movingLikeCapture(m) &&
- other.start.x == m.end.x &&
- other.start.y == m.end.y
+ (
+ m.vanish.length == 1 ||
+ m.vanish[1].c != m.vanish[0].c ||
+ // Self-capture attempt
+ (
+ !other.illegal &&
+ other.end.x == m.end.x &&
+ other.end.y == m.end.y
+ )
+ )
)
||
(
- // Capture attempt
- movingLikeCapture(m) &&
- other.end.x == m.end.x &&
- other.end.y == m.end.y
+ m.vanish[0].p == V.PAWN &&
+ !other.illegal &&
+ (
+ (
+ // Promotion attempt
+ m.end.x == (m.vanish[0].c == "w" ? 0 : V.size.x - 1) &&
+ other.vanish.length == 2 &&
+ other.vanish[1].p == V.KNIGHT &&
+ other.vanish[1].c == m.vanish[0].c
+ )
+ ||
+ (
+ // Moving attempt
+ !movingLikeCapture(m) &&
+ other.start.x == m.end.x &&
+ other.start.y == m.end.y
+ )
+ ||
+ (
+ // Capture attempt
+ movingLikeCapture(m) &&
+ other.end.x == m.end.x &&
+ other.end.y == m.end.y
+ )
+ )
)
);
};
else this.whiteMove = move.whiteMove;
}
- getCheckSquares(color) {
+ getCheckSquares() {
return [];
}