From a6273fb472bf6815668c3ad6a4ec18317ae5b22d Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Thu, 29 Dec 2022 12:10:38 +0100 Subject: [PATCH] Slightly less weird FEN generation. --- www/js/chessboard-0.3.0.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/www/js/chessboard-0.3.0.js b/www/js/chessboard-0.3.0.js index dc0e427..26c0217 100644 --- a/www/js/chessboard-0.3.0.js +++ b/www/js/chessboard-0.3.0.js @@ -149,6 +149,7 @@ function objToFen(obj) { } var fen = ''; + let num_empty = 0; var currentRow = 8; for (var i = 0; i < 8; i++) { @@ -157,32 +158,30 @@ function objToFen(obj) { // piece exists if (obj.hasOwnProperty(square) === true) { + if (num_empty > 0) { + fen += num_empty; + num_empty = 0; + } fen += pieceCodeToFen(obj[square]); } // empty space else { - fen += '1'; + ++num_empty; } } if (i !== 7) { + if (num_empty > 0) { + fen += num_empty; + num_empty = 0; + } fen += '/'; } currentRow--; } - // squeeze the numbers together - // haha, I love this solution... - fen = fen.replace(/11111111/g, '8'); - fen = fen.replace(/1111111/g, '7'); - fen = fen.replace(/111111/g, '6'); - fen = fen.replace(/11111/g, '5'); - fen = fen.replace(/1111/g, '4'); - fen = fen.replace(/111/g, '3'); - fen = fen.replace(/11/g, '2'); - return fen; } -- 2.39.2