Come convertire le mosse PGN in notazione algebrica lunga (in pitone)?


12

Voglio leggere un file PGN, quindi passare a un determinato numero di spostamento e inviarlo a un motore UCI. Risulta che i motori funzionano con una lunga notazione algebrica e le PGN sono in breve algebriche. Qual è un modo semplice per effettuare la conversione? cioè da SAN a LAN.

Mi rendo conto che generare una lunga notazione algebrica richiede la conoscenza dello stato della scacchiera e delle regole degli scacchi, quindi non voglio scriverlo di nuovo! Sicuramente qualcosa del genere deve già esistere: un programma da riga di comando o un modulo (preferibilmente in Python).


2
Questa domanda sembra fuori tema perché riguarda la programmazione, non gli scacchi.
Tony Ennis,

3
AFAIK, la meta discussione più esplicita che ci sia stata pertinente per stabilire se questo è in argomento è meta.chess.stackexchange.com/q/100/167 . Il consenso a quel punto sembrava essere che qualcosa del genere dovesse essere considerato in tema. (Nota: non sto discutendo in un modo o nell'altro, quindi non accettarlo. Ma sentiti libero di contribuire a quel meta thread.)
ETD,

Risposte:


7

Questo sarebbe quello che stai cercando? PGN-extract (un'utilità della riga di comando) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/

Riesco a vedere una bandiera nel documento della funzione che potrebbe aiutare:

  • -W[cm|epd|halg|lalg|elalg|san|uci]- specifica che il formato di output da utilizzare
    -Whalgè algebrico lungo sillabato.
    -Wlalgè algebrico lungo è algebrico
    -Welalg[PNBRQK]lungo potenziato. Utilizzare i caratteri PNBRQK per la lingua

2
L'opzione migliore per la persona che ha chiesto è probabilmente -Wucise vogliono alimentarlo a un motore UCI.
Vegard
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.