2017-02-17 33 views
1

我一直在玩python-chess,我正在加載一個PGN文件(A),從它讀取遊戲。然後我做出一個動作,創建第二個更新的PGN文件(B)。我讀了B的最後一步,並想在A中做出同樣的舉動,並對該日期的行動發表評論。用python-chess加入遊戲

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.舉docsboard()說,它只是產生一個副本,並不會改變實際的遊戲。什麼是移動到遊戲的正確方法?

+0

看起來像意圖是你創造一個新的遊戲。您可以使用指定位置的棋盤對其進行初始化,並從那裏向新遊戲添加更改。 – pvg

回答

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()改變了比賽,我需要的方式。