export class CoregalRules extends ChessRules {
static IsGoodPosition(position) {
- if (!super.IsGoodPosition(position)) return false;
+ if (!ChessRules.IsGoodPosition(position)) return false;
const rows = position.split("/");
// Check that at least one queen of each color is there:
let queens = {};
}
}
- getCheckSquares(color) {
+ getCheckSquares() {
+ const color = this.turn;
let squares = [];
const oppCol = V.GetOppCol(color);
if (this.isAttacked(this.kingPos[color], oppCol))
}
// Get random squares for king and queen between b and g files
- let randIndex = randInt(6);
- let kingPos = randIndex + 1;
- randIndex = randInt(5);
+ let randIndex = randInt(6) + 1;
+ let kingPos = randIndex;
+ randIndex = randInt(5) + 1;
if (randIndex >= kingPos) randIndex++;
- let queenPos = randIndex + 1;
+ let queenPos = randIndex;
// Get random squares for rooks to the left and right of the queen
// and king: not all squares of the same colors (for bishops).
pieces[c][bishop2Pos] = "b";
pieces[c][knight2Pos] = "n";
pieces[c][rook2Pos] = "r";
- flags +=
- [rook1Pos, queenPos, kingPos, rook2Pos].sort().map(V.CoordToColumn).join("");
+ flags += [rook1Pos, queenPos, kingPos, rook2Pos]
+ .sort().map(V.CoordToColumn).join("");
}
// Add turn + flags + enpassant
return (
moves.push(
new Move({
appear: [
- new PiPo({ x: x, y: finalSquares[castleSide][0], p: castlingPiece, c: c }),
- new PiPo({ x: x, y: finalSquares[castleSide][1], p: V.ROOK, c: c })
+ new PiPo({
+ x: x,
+ y: finalSquares[castleSide][0],
+ p: castlingPiece,
+ c: c
+ }),
+ new PiPo({
+ x: x,
+ y: finalSquares[castleSide][1],
+ p: V.ROOK,
+ c: c
+ })
],
vanish: [
new PiPo({ x: x, y: y, p: castlingPiece, c: c }),
this.castleFlags[c][flagIdx] = 8;
} else if (
move.end.x == oppFirstRank && //we took opponent rook?
- [this.castleFlags[oppCol][0], this.castleFlags[oppCol][3]].includes(move.end.y)
+ [this.castleFlags[oppCol][0], this.castleFlags[oppCol][3]]
+ .includes(move.end.y)
) {
const flagIdx = (move.end.y == this.castleFlags[oppCol][0] ? 0 : 3);
this.castleFlags[oppCol][flagIdx] = 8;