return ['k', 'a'].includes(p);
}
- // NOTE: canTake includes (wrong) captures of antiking,
- // to not go to low-level using findDestSquares()
+ // NOTE: canTake includes (wrong) captures of (anti)king,
+ // to detect attacks on (anti)kings.
canTake([x1, y1], [x2, y2]) {
const piece1 = this.getPiece(x1, y1);
const color1 = this.getColor(x1, y1);
);
}
- // Remove captures of antiking (see above)
+ // Remove captures of (anti)king (see above)
getPotentialMovesFrom([x, y]) {
return super.getPotentialMovesFrom([x, y]).filter(m =>
- m.vanish.length == 1 || m.vanish[1].p != 'a');
+ m.vanish.length == 1 || !['k', 'a'].includes(m.vanish[1].p));
}
underCheck(square_s, color) {
let res = false;
- if (!Array.isArray(square_s[0]))
- square_s = [square_s];
square_s.forEach(sq => {
switch (this.getPiece(sq[0], sq[1])) {
case 'k':
- res ||= super.underAttack(sq, color);
+ res ||= super.underAttack(sq, [color]);
break;
case 'a':
- res ||= !super.underAttack(sq, color);
+ res ||= !super.underAttack(sq, [color]);
break;
}
});