Bagaimana cara mengubah perpindahan PGN menjadi notasi aljabar yang panjang (dengan python)?

12

Saya ingin membaca file PGN dan kemudian maju ke nomor pindah tertentu, dan memasukkannya ke mesin UCI. Ternyata mesin bekerja menggunakan notasi aljabar panjang, dan PGN singkatnya adalah aljabar. Apa cara mudah untuk melakukan konversi? yaitu dari SAN ke LAN.

Saya menyadari bahwa menghasilkan notasi aljabar yang panjang membutuhkan pengetahuan tentang aturan dewan & catur, jadi saya tidak ingin menulis semuanya lagi! Tentunya sesuatu seperti ini harus sudah ada - baik program baris perintah atau modul (lebih disukai dengan python).

aplikasi cepat
sumber
2
Pertanyaan ini tampaknya di luar topik karena ini tentang pemrograman, bukan tentang catur.
Tony Ennis
3
AFAIK, diskusi meta paling eksplisit di sana yang berkaitan dengan apakah topik ini adalah meta.chess.stackexchange.com/q/100/167 . Konsensus pada titik itu tampaknya bahwa sesuatu seperti ini harus dipertimbangkan pada topik. (Catatan: Saya tidak berdebat dengan satu atau lain cara, jadi jangan bawa saya. Tapi jangan ragu untuk berkontribusi pada thread meta itu.)
ETD

Jawaban:

7

Apakah ini yang Anda cari? Ekstrak PGN (Utilitas baris perintah) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/

Saya dapat melihat bendera di fitur doc yang mungkin membantu:

  • -W[cm|epd|halg|lalg|elalg|san|uci]- tentukan format output yang digunakan
    -Whalgadalah aljabar panjang ditulis dgn tanda penghubung.
    -Wlalgaljabar panjang adalah aljabar
    -Welalg[PNBRQK]panjang ditingkatkan. Gunakan karakter PNBRQK untuk bahasa
shivsky
sumber
2
Opsi terbaik untuk orang yang bertanya mungkin -Wucijika mereka ingin memasukkannya ke mesin UCI.
Vegard