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
JavaScript
;
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;