Comment convertir les mouvements PGN en notation algébrique longue (en python)?

12

Je veux lire un fichier PGN, puis avancer vers un certain numéro de déplacement et le transmettre à un moteur UCI. Il s'avère que les moteurs fonctionnent en utilisant une notation algébrique longue, et les PGN sont en algébrique court. Quelle est la manière la plus simple d'effectuer la conversion? c'est-à-dire du SAN au LAN.

Je me rends compte que la génération d'une notation algébrique longue nécessite une connaissance de l'état du plateau et des règles d'échecs, donc je ne veux pas tout réécrire! Certes, quelque chose comme ça doit déjà exister - soit un programme en ligne de commande ou un module (de préférence en python).

multiplication rapide
la source
2
Cette question semble être hors sujet car elle concerne la programmation, pas les échecs.
Tony Ennis
3
AFAIK, la méta discussion la plus explicite qui ait été pertinente pour savoir s'il s'agit du sujet est meta.chess.stackexchange.com/q/100/167 . Le consensus à ce stade semblait être que quelque chose comme cela devrait être examiné sur le sujet. (Remarque: je ne discute pas dans un sens ou dans l'autre, alors ne le prenez pas avec moi. Mais n'hésitez pas à contribuer à ce fil méta.)
ETD

Réponses:

7

Serait-ce ce que vous recherchez? PGN-extract (Un utilitaire de ligne de commande) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/

Je peux voir un indicateur dans le document de fonctionnalité qui pourrait aider:

  • -W[cm|epd|halg|lalg|elalg|san|uci]- spécifiez que le format de sortie à utiliser
    -Whalgest algébrique long avec trait d'union.
    -Wlalgest algébrique long est algébrique
    -Welalg[PNBRQK]long amélioré. Utilisez les caractères PNBRQK pour la langue
shivsky
la source
2
La meilleure option pour la personne qui a posé la question est probablement -Wucisi elle souhaite l'introduire dans un moteur UCI.
Vegard