我一直在玩python-chess,我正在加载一个PGN文件(A),从中读取游戏。然后我做了一个移动,创建了第二个更新的PGN文件(B)。我读了B的最后一步,想在A中做同样的动作,并用日期对这一举动做出评论。
last_move = new_game.end()
last_move_san = last_move.san()
old_last = game.end()
old_last_san = old_last.san()
if last_move_san != old_last_san:
game.end().board().push_san(last_move_san)
game.end().comment = datetime.strftime(tdate, "%m/%d")
f_exporter = chess.pgn.FileExporter(temp_pgn)
game.accept(f_exporter)
最终的PGN文件显示了最初的游戏,没有从B移动。board()
item
表示它只是生成副本并且不会改变实际游戏。添加移动到游戏的正确方法是什么?
答案 0 :(得分:0)
我终于明白了:
last_move = new_game.end()
last_move_san = last_move.san()
old_last = game.end()
old_last_san = old_last.san()
if last_move_san != old_last_san:
new_move = game.end().board().push_san(last_move_san)
game.end().add_main_variation(new_move, comment = datetime.strftime(tdate, "%m/%d"))
GameNode.add_main_variation()
以我需要的方式改变了比赛。