【发布时间】:2015-09-20 23:21:20
【问题描述】:
我正在使用 nodejs 构建一个与国际象棋相关的应用程序。我一直在尝试尽可能多地使用chess.js,但我认为我在功能方面遇到了障碍。在扩展该功能之前,我想确保没有其他工具可以满足我的需要。
我正在寻找一种将 PGN 字符串转换为 FEN 移动列表的方法。我希望在 chess.js 中使用 load_pgn() 将移动加载到对象中,然后遍历每个移动并调用 fen() 函数来输出当前的 FEN。然而,chess.js 似乎没有办法在游戏中走步。除非我错过了什么。
我宁愿不必解析字符串,但如果必须的话。有什么建议吗?
解决方案:
另请参阅下面 efirvida 的答案以获取解决方案
这样的东西(未经测试)似乎有效。该函数接受一个使用chess.js 创建的Chess 对象,该对象已经加载了一个PGN。
function getMovesAsFENs(chessObj) {
var moves = chessObj.history();
var newGame = new Chess();
var fens = [];
for (var i = 0; i < moves.length; i++) {
newGame.move(moves[i]);
fens.push(newGame.fen());
}
return fens;
}
【问题讨论】:
标签: node.js chess chessboard.js fen