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

37 lines (36 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertPointsToNumbers = exports.composeBoardArrayToString = void 0; function composeBoardArrayToString(board) { var eightRankString = board.slice(56).join(''); var sevenRankString = board.slice(48, 56).join(''); var sixRankString = board.slice(40, 48).join(''); var fiveRankString = board.slice(32, 40).join(''); var fourRankString = board.slice(24, 32).join(''); var threeRankString = board.slice(16, 24).join(''); var twoRankString = board.slice(8, 16).join(''); var oneRankString = board.slice(0, 8).join(''); var boardStrings = [ eightRankString, sevenRankString, sixRankString, fiveRankString, fourRankString, threeRankString, twoRankString, oneRankString, ]; return convertPointsToNumbers(boardStrings.join('/')); } exports.composeBoardArrayToString = composeBoardArrayToString; function convertPointsToNumbers(boardString) { boardString = boardString.replaceAll(/\.{8}/g, '8'); boardString = boardString.replaceAll(/\.{7}/g, '7'); boardString = boardString.replaceAll(/\.{6}/g, '6'); boardString = boardString.replaceAll(/\.{5}/g, '5'); boardString = boardString.replaceAll(/\.{4}/g, '4'); boardString = boardString.replaceAll(/\.{3}/g, '3'); boardString = boardString.replaceAll(/\.{2}/g, '2'); return boardString; } exports.convertPointsToNumbers = convertPointsToNumbers;