V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep");
}
- // TODO: verify this assertion
- atLeastOneMove()
- {
- return true; //always at least one possible move
- }
-
underCheck(move)
{
return false; //there is no check
}
// Does this move takes opponent's king?
const oppCol = this.getOppCol(c);
- for (let psq of move.vanish)
+ for (let i=1; i<move.vanish.length; i++)
{
- if (psq.p == VariantRules.KING)
+ if (move.vanish[i].p == VariantRules.KING)
{
this.kingPos[oppCol] = [-1,-1];
break;
if (this.kingPos[oppCol][0] < 0)
{
// Last move took opponent's king
- for (let psq of move.vanish)
+ for (let i=1; i<move.vanish.length; i++)
{
+ const psq = move.vanish[i];
if (psq.p == 'k')
{
this.kingPos[oppCol] = [psq.x, psq.y];
return "1/2";
const color = this.turn;
- // TODO: do we need "atLeastOneMove()"?
if (this.atLeastOneMove() && this.kingPos[color][0] >= 0)
return "*";
checkGameEnd()
{
- // No valid move: our king disappeared
+ // Stalemate, or our king disappeared
return this.turn == "w" ? "0-1" : "1-0";
}