parseFen.js


SUBMITTED BY: okpalan86

DATE: Jan. 18, 2024, 6:15 p.m.

FORMAT: JavaScript

SIZE: 744 Bytes

HITS: 357

  1. function parseFen(fen) {
  2. const [board, activeColor, castling, enPassant, halfMoves, fullMoves] = fen.split(' ');
  3. const ranks = board.split('/');
  4. const pieces = ranks.map(rank => rank.split('').reduce((acc, char) => {
  5. if (/\d/.test(char)) {
  6. return acc + ' '.repeat(Number(char));
  7. }
  8. return acc + char;
  9. }, ''));
  10. return {
  11. pieces: pieces.join('').split(''),
  12. activeColor,
  13. castling,
  14. enPassant,
  15. halfMoves: Number(halfMoves),
  16. fullMoves: Number(fullMoves),
  17. };
  18. }
  19. const fenString = 'rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq e3 0 1';
  20. const parsedFen = parseFen(fenString);
  21. console.log('Parsed FEN:', parsedFen);

comments powered by Disqus