UNPKG

chess-legal-moves

Version:

Analyses a given chess game position in Fen notation to return legal moves and provides the next game position after a given move

26 lines (25 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generatePieceMoves = void 0; var positionsHashTable_1 = require("./../BitBoard/positionsHashTable"); function generatePieceMoves(pieceScope, board, hasToPlay) { var opponent = hasToPlay === 'w' ? 'blacks' : 'whites'; var pieceMoves = pieceScope.map(function (pieceScope) { var from = positionsHashTable_1.positionsTable[pieceScope.position]; var quietMoves = pieceScope.attacks .and(board.quietDestinations) .extractBits() .map(function (pieceDestination) { return positionsHashTable_1.positionsTable[pieceDestination]; }); var killMoves = pieceScope.attacks .and(board[opponent]) .extractBits() .map(function (pieceDestination) { return positionsHashTable_1.positionsTable[pieceDestination]; }); return { from: from, quietMoves: quietMoves, killMoves: killMoves, }; }); return pieceMoves; } exports.generatePieceMoves = generatePieceMoves;