¿Cómo convertir movimientos PGN a notación algebraica larga (en python)?


12

Quiero leer un archivo PGN y luego avanzar a un cierto número de movimiento, y alimentarlo a un motor UCI. Resulta que los motores funcionan con notación algebraica larga, y los PGN son algebraicos cortos. ¿Cuál es una manera fácil de hacer la conversión? es decir, de SAN a LAN.

Me doy cuenta de que generar una notación algebraica larga requiere conocer el estado del tablero y las reglas de ajedrez, ¡así que no quiero volver a escribirlo todo! Seguramente algo como esto ya debe existir, ya sea un programa de línea de comandos o un módulo (preferiblemente en Python).


2
Esta pregunta parece estar fuera de tema porque se trata de programación, no de ajedrez.
Tony Ennis

3
AFAIK, la meta discusión más explícita que ha habido que es pertinente a si esto es sobre el tema es meta.chess.stackexchange.com/q/100/167 . El consenso en ese momento parecía ser que algo como esto debería considerarse sobre el tema. (Nota: no estoy discutiendo de una forma u otra, así que no lo hable conmigo. Pero siéntase libre de contribuir a ese hilo meta.)
ETD

Respuestas:


7

¿Sería esto lo que estás buscando? PGN-extract (Una utilidad de línea de comando) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/

Puedo ver una bandera en el documento de características que podría ayudar:

  • -W[cm|epd|halg|lalg|elalg|san|uci]- especifique el formato de salida que se utilizará con
    -Whalgguión largo algebraico.
    -WlalgAlgebraico largo
    -Welalg[PNBRQK]es realzado algebraico largo. Usa los caracteres PNBRQK para el lenguaje

2
La mejor opción para la persona que preguntó es probablemente -Wucisi quieren alimentarlo a un motor UCI.
Vegard el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.