簡體   English   中英

用python-chess添加動作游戲

[英]adding moves to game with python-chess

我一直在玩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 board()文檔說它只是產生一個副本並且不會改變實際的游戲。 添加移動到游戲的正確方法是什么?

我終於想通了:

    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()以我需要的方式改變了游戲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM