Как преобразовать PGN движется в длинную алгебраическую нотацию (в Python)?

12

Я хочу прочитать файл PGN, а затем перейти к определенному номеру хода и передать его в механизм UCI. Оказывается, двигатели работают с использованием длинных алгебраических обозначений, а PGN - в коротких алгебраических. Какой простой способ сделать преобразование? то есть от SAN до LAN.

Я понимаю, что генерация длинной алгебраической записи требует знания состояния доски и шахматных правил, поэтому я не хочу писать все это снова! Конечно, что-то вроде этого должны уже существовать - либо программу командной строки или модуль (предпочтительно в Python).

fastmultiplication
источник
2
Этот вопрос кажется не по теме, потому что он касается программирования, а не шахмат.
Тони Эннис,
3
AFAIK, наиболее явная мета обсуждение там было , что это уместно ли это на тему meta.chess.stackexchange.com/q/100/167 . Консенсус на тот момент, казалось, заключался в том, что что-то подобное следует рассматривать по теме. (Примечание: Я не спорю , так или другой, так что не воспринимайте его со мной Но не стесняйтесь вносить свой вклад в этот мета - нить.)
ETD

Ответы:

7

Будет ли это то , что вы ищете? ПГН-экстракт (утилита командной строки) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/

Я могу видеть флаг в документообороте, который может помочь:

  • -W[cm|epd|halg|lalg|elalg|san|uci]- указать выходной формат для использования
    -Whalgв дефис долго алгебраическим.
    -Wlalgдавно алгебраическая
    -Welalg[PNBRQK]усиливается долго алгебраическим. Используйте символы PNBRQK для языка
shivsky
источник
2
Самый лучший вариант для человека , который спросил, вероятно , -Wuciесли они хотят , чтобы кормить его к двигателю UCI.
Vegard