chlss
Version:
Open-Source Chess Engine in TypeScript.
37 lines (36 loc) • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OffsetMoveGenerator = void 0;
const boardPosition_1 = require("./boardPosition");
const piece_1 = require("./piece");
const coords_1 = require("./coords");
exports.OffsetMoveGenerator = {
generateOffsets(boardPosition, piece, colour, index, posX, posY, offsets, moveList) {
for (let { x, y } of offsets) {
this.addMove(boardPosition, piece, colour, index, posX, posY, x, y, moveList);
}
},
addMove(boardPosition, piece, colour, index, posX, posY, offX, offY, moveList) {
const tX = posX + offX;
const tY = posY + offY;
function pushMove(targetPiece) {
moveList.push({
from: index,
to: coords_1.Coords.toSquareIndex(tX, tY),
piece: piece,
targetPiece: targetPiece,
setEnPassant: null,
promotion: undefined,
isPromo: false
});
}
if (!boardPosition_1.BoardPosition.isInBoard(tX, tY))
return;
const tI = coords_1.Coords.toSquareIndex(tX, tY);
const tPiece = boardPosition_1.BoardPosition.getPiece(boardPosition, tI);
const tColour = piece_1.Piece.getColour(tPiece);
if (piece_1.Piece.isColourEnemyOrNull(tColour, colour)) {
pushMove(tPiece);
}
}
};