static IsGoodFen(fen) {
if (!ChessRules.IsGoodFen(fen)) return false;
const fenParts = fen.split(" ");
- if (fenParts.length != 6) return false;
- if (fenParts[5] != "-" && !fenParts[5].match(/^([a-h][1-8]){2}$/))
+ if (fenParts.length != 5) return false;
+ if (fenParts[4] != "-" && !fenParts[4].match(/^([a-h][1-8]){2}$/))
return false;
return true;
}
Math.abs(epSquare.y - y) == 1
) {
let enpassantMove = this.getBasicMove([x, y], [epSquare.x, epSquare.y]);
- const oppCol = V.GetOppCol(color);
+ const oppCol = V.GetOppCol(this.turn);
enpassantMove.vanish.push({
x: x,
y: epSquare.y,
// Does m2 un-do m1 ? (to disallow undoing captures)
oppositeMoves(m1, m2) {
return (
- m1 &&
+ !!m1 &&
m2.vanish.length == 2 &&
m1.start.x == m2.start.x &&
m1.end.x == m2.end.x &&