Quero ler um arquivo PGN e, em seguida, avançar para um determinado número de movimentação e alimentá-lo para um mecanismo UCI. Acontece que os motores funcionam usando notação algébrica longa, e os PGNs são, em resumo, algébricos. Qual é uma maneira fácil de fazer a conversão? ou seja, de SAN para LAN.
Sei que gerar uma notação algébrica longa requer conhecimento das regras do xadrez e do estado do tabuleiro, por isso não quero escrever tudo de novo! Certamente algo assim já deve existir - um programa de linha de comando ou um módulo (de preferência em python).
pgn
programming
multiplicação rápida
fonte
fonte
Respostas:
Seria isso o que você estava procurando? PGN-extract (um utilitário de linha de comando) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/
Posso ver um sinalizador no documento do recurso que pode ajudar:
-W[cm|epd|halg|lalg|elalg|san|uci]
- especifique que o formato de saída a ser usado-Whalg
é hifenizado por um longo algébrico.-Wlalg
é longo algébrico-Welalg[PNBRQK]
é aprimorado longo algébrico. Use os caracteres PNBRQK para o idiomafonte
-Wuci
se deseja alimentá-lo com um mecanismo UCI.