Як конвертувати переміщення PGN у довге алгебраїчне позначення (у пітон)?


12

Я хочу прочитати файл PGN, а потім перейти до певного переміщення номера та подати його до двигуна UCI. Виявляється, двигуни працюють з використанням довгих алгебраїчних позначень, а PGN - у коротких алгебраїчних. Який простий спосіб здійснити конверсію? тобто від SAN до LAN.

Я усвідомлюю, що генерування довгих алгебраїчних позначень вимагає знань про правила дошки та шахи, тому я не хочу все це писати ще раз! Напевно, щось подібне вже повинно існувати - або програма командного рядка, або модуль (бажано в python).


2
Це питання видається поза темою, оскільки йдеться про програмування, а не про шахи.
Тоні Енніс

3
AFAIK, найяскравіша мета-дискусія, що стосується того, чи є це на тему, це мета.chess.stackexchange.com/q/100/167 . У цьому пункті здавалося, що щось подібне слід розглядати на тему. (Примітка. Я не сперечаюсь так чи інакше, тому не беруться за мене. Але не соромтеся робити свій внесок у цю мета-нитку.)
ETD,

Відповіді:


7

Це було б те, що ви шукаєте? PGN-витяг (утиліта командного рядка) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/

Я можу побачити прапор у документі функції, який може допомогти:

  • -W[cm|epd|halg|lalg|elalg|san|uci]- вкажіть вихідний формат, який буде використовувати
    -Whalgдефіс довга алгебраїка.
    -Wlalgдовга алгебраїка
    -Welalg[PNBRQK]посилена довга алгебраїка. Використовуйте символи PNBRQK для мови

2
Найкращий варіант для запитуваного - це, мабуть, -Wuciчи хочуть вони подати його на двигун UCI.
Вегард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.