const L = this.moves.length;
if (L > 0 && this.oppositeMoves(this.moves[L-1], m))
return false;
- return !this.underCheck(m);
+ this.play(m);
+ const res = !this.underCheck(color);
+ this.undo(m);
+ return res;
});
}
return false;
}
- underCheck(move)
+ underCheck(color)
{
- const color = this.turn;
- this.play(move);
- let res = this.isAttacked(this.kingPos[color], [this.getOppCol(color),'c']);
- this.undo(move);
- return res;
+ return this.isAttacked(this.kingPos[color], [V.GetOppCol(color),'c']);
}
- getCheckSquares(move)
+ getCheckSquares(color)
{
- this.play(move);
- const color = this.turn;
// Artifically change turn, for checkered pawns
- this.turn = this.getOppCol(color);
+ this.turn = V.GetOppCol(color);
const kingAttacked = this.isAttacked(
- this.kingPos[color], [this.getOppCol(color),'c']);
+ this.kingPos[color], [V.GetOppCol(color),'c']);
let res = kingAttacked
? [JSON.parse(JSON.stringify(this.kingPos[color]))] //need to duplicate!
: [];
this.turn = color;
- this.undo(move);
return res;
}
{
const color = this.turn;
// Artifically change turn, for checkered pawns
- this.turn = this.getOppCol(this.turn);
- const res = this.isAttacked(this.kingPos[color], [this.getOppCol(color),'c'])
+ this.turn = V.GetOppCol(this.turn);
+ const res = this.isAttacked(this.kingPos[color], [V.GetOppCol(color),'c'])
? (color == "w" ? "0-1" : "1-0")
: "1/2";
- this.turn = this.getOppCol(this.turn);
+ this.turn = V.GetOppCol(this.turn);
return res;
}
if (move.vanish.length > 1)
{
// Capture
- const startColumn = V.GetColumn(move.start.y);
+ const startColumn = V.CoordToColumn(move.start.y);
notation = startColumn + "x" + finalSquare +
"=" + move.appear[0].p.toUpperCase();
}
}
}
}
+
+const VariantRules = CheckeredRules;