const piece2 = this.getPiece(x2,y2);
const color1 = this.getColor(x1,y1);
const color2 = this.getColor(x2,y2);
- return !["a","A"].includes(piece2) &&
+ return piece2 != "a" &&
((piece1 != "a" && color1 != color2) || (piece1 == "a" && color1 == color2));
}
getPotentialAntikingMoves(sq)
{
- return this.getSlideNJumpMoves(sq, VariantRules.steps[VariantRules.QUEEN], "oneStep");
+ const V = VariantRules;
+ return this.getSlideNJumpMoves(sq,
+ V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep");
}
isAttacked(sq, colors)
isAttackedByKing([x,y], colors)
{
- if (this.getPiece(x,y) == VariantRules.ANTIKING)
+ const V = VariantRules;
+ if (this.getPiece(x,y) == V.ANTIKING)
return false; //antiking is not attacked by king
- return this.isAttackedBySlideNJump([x,y], colors,
- VariantRules.KING, VariantRules.steps[VariantRules.QUEEN], "oneStep");
+ return this.isAttackedBySlideNJump([x,y], colors, V.KING,
+ V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep");
}
isAttackedByAntiking([x,y], colors)
{
- if (this.getPiece(x,y) == VariantRules.KING)
+ const V = VariantRules;
+ if (this.getPiece(x,y) == V.KING)
return false; //king is not attacked by antiking
- return this.isAttackedBySlideNJump([x,y], colors,
- VariantRules.ANTIKING, VariantRules.steps[VariantRules.QUEEN], "oneStep");
+ return this.isAttackedBySlideNJump([x,y], colors, V.ANTIKING,
+ V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep");
}
underCheck(move)
const c = this.turn;
const oppCol = this.getOppCol(c);
this.play(move)
- let res = this.isAttacked(this.kingPos[c], oppCol)
- || !this.isAttacked(this.antikingPos[c], oppCol);
+ let res = this.isAttacked(this.kingPos[c], [oppCol])
+ || !this.isAttacked(this.antikingPos[c], [oppCol]);
this.undo(move);
return res;
}
let res = super.getCheckSquares(move);
this.play(move);
const c = this.turn;
- if (!this.isAttacked(this.antikingPos[c], this.getOppCol(c)))
+ if (!this.isAttacked(this.antikingPos[c], [this.getOppCol(c)]))
res.push(JSON.parse(JSON.stringify(this.antikingPos[c])));
this.undo(move);
return res;
{
const color = this.turn;
const oppCol = this.getOppCol(color);
- if (!this.isAttacked(this.kingPos[color], oppCol)
- && this.isAttacked(this.antikingPos[color], oppCol))
+ if (!this.isAttacked(this.kingPos[color], [oppCol])
+ && this.isAttacked(this.antikingPos[color], [oppCol]))
{
return "1/2";
}