我有自己的pgn解析器,它支持n个并行变化和嵌套变体。
我已经编写了一个包装器来使用chessboard.js。
我面临两个问题
这两个问题具有相同的共同根,即替换船上特定位置的棋子。一种解决方案似乎为板对象提供FEN并设置它。
在文档中没有找到任何东西。 我想要一些其他优雅的解决方案,我可以替换特定的片段类型,任何建议都会有所帮助。
修改 似乎根据示例实现替换件的唯一方法是
// for castling, en passant, pawn promotion
var onSnapEnd = function() {
board.position(game.fen());// re positioning board by providing FEN
};
提供board.move("<en passant>")
执行移动但不移除实际位于目标位置之前的棋子。
答案 0 :(得分:1)
要移动任何棋子,您必须在初始化国际象棋js对象时注册onDrop处理程序。 该函数应返回:
当您从onDrop返回这些值中的任何一个时,开发板都会相应更新。
请注意,处理促销活动非常棘手,因为您需要选择一块促销商品。
任何时候您想要更新木板(例如,一旦用户选择了一块促销品),都只需使用新的栅栏即可,例如:
board.position(fen);