我想从我从文本文件中读取的游戏(使用 python-chess 库)中顺序打印移动(每次移动一个字符串)。
所以,假设我有一个包含以下动作的游戏的 pgn 文件......
1. f3 e5 2. g4 Qh4#
...我想遍历这些动作并一一打印(使用 for 循环或类似方法),显示
f3
e5
g4
Qh4
我在这里找到了 python-chess 的文档: https ://python-chess.readthedocs.io/en/latest/
从文档中我了解到
- 我需要创建一个访问者的实例,它可以使用接受方法按 PGN 顺序遍历游戏节点
- san methon 会给我导致当前节点的移动的字符串
但是我发现这种文档很难阅读,并且可以通过示例得到很大帮助。
我设法做的是从 pgn 文件中读取游戏并使用变体方法一次性打印所有动作(而不是一个一个)。
import chess.pgn
pgn = open('I:\myfile.pgn')
my_game = chess.pgn.read_game(pgn)
print(my_game.variation(0))