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