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

45 lines (44 loc) 1.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createNewGameScan = exports.generate = void 0; var Board_1 = require("./Board/Board"); var knightsMoves_1 = require("./moves/knightsMoves"); var pawnsMoves_1 = require("./moves/pawnsMoves"); var rooksMoves_1 = require("./moves/rooksMoves"); var bishopsMoves_1 = require("./moves/bishopsMoves"); var queensMoves_1 = require("./moves/queensMoves"); var kingMoves_1 = require("./moves/kingMoves"); exports.generate = { knightsMoves: knightsMoves_1.knightsMoves, pawnsMoves: pawnsMoves_1.pawnsMoves, rooksMoves: rooksMoves_1.rooksMoves, bishopsMoves: bishopsMoves_1.bishopsMoves, queensMoves: queensMoves_1.queensMoves, kingMoves: kingMoves_1.kingMoves, }; function createNewGameScan(gameState) { var _a, _b, _c, _d, _e, _f; var scan = { legalMoves: [], kingState: { isChecked: false, isCheckMated: false, isDraw: false, }, }; var board = new Board_1.default(gameState.fenBoard); if (board.whiteKnights) (_a = scan.legalMoves).push.apply(_a, exports.generate.knightsMoves(board, gameState.hasToPlay)); if (board.whitePawns) (_b = scan.legalMoves).push.apply(_b, exports.generate.pawnsMoves(board, gameState.hasToPlay)); if (board.whiteRooks) (_c = scan.legalMoves).push.apply(_c, exports.generate.rooksMoves(board, gameState.hasToPlay)); if (board.whiteBishops) (_d = scan.legalMoves).push.apply(_d, exports.generate.bishopsMoves(board, gameState.hasToPlay)); if (board.whiteQueens) (_e = scan.legalMoves).push.apply(_e, exports.generate.queensMoves(board, gameState.hasToPlay)); if (board.whiteKing) (_f = scan.legalMoves).push.apply(_f, exports.generate.kingMoves(board, gameState.hasToPlay)); return scan; } exports.createNewGameScan = createNewGameScan;