UNPKG

chlss

Version:

Open-Source Chess Engine in TypeScript.

37 lines (36 loc) 1.41 kB
"use strict"; 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); } } };