Notazione Portable Game

Da Wikipedia, l'enciclopedia libera.

La notazione Portable Game (abbreviata PGN, dall'inglese: Portable Game Notation) è un formato usato in ambito digitale per registrare le partite di scacchi. La maggior parte dei programmi per giocare a scacchi tramite computer lo supportano (ad esempio Xboard).

È stato progettato per essere facilmente leggibile dall'uomo e comodamente usato dai software per computer. Le mosse sono descritte in notazione algebrica e solitamente sono raccolte all'interno di file con estensione ".pgn" (da non confondere con i file ".png", che contengono immagini in formato Portable Network Graphics).

Formato[modifica | modifica sorgente]

Nella specifica PGN sono descritti due formati, uno di "importazione" e l'altro di "esportazione". Il primo si riferisce a dati che potrebbero essere stati preparati a mano, ed è intenzionalmente permissivo. Il secondo invece è alquanto dettagliato e si riferisce a dati preparati dal software; questa rappresentazione richiede che il file relativo ad una stessa partita, generato da due programmi diversi, deve essere identico, byte per byte. Il formato prevede tre tipi di contenuti: caratteristiche, mosse e commenti.

Caratteristiche della partita[modifica | modifica sorgente]

Le caratteristiche della partita (nomi dei giocatori, luogo, data, eccetera) vengono inserite tra parentesi quadre. Tra le varie caratteristiche, sette sono obbligatorie: nel formato di esportazione devono sempre essere presenti, in questo ordine:

  1. Event - il nome del torneo o della sfida. Esempi:
    • [Event "FIDE World Championship"]
    • [Event "Casual Game"]
    • [Event "?"]
  2. Site - il luogo dell'evento, nel formato "Città, Regione NAZIONE", dove NAZIONE viene espresso nel codice internazionale di tre lettere del Comitato Olimpico Internazionale. Esempi:
    • [Site "Belgrade, Serbia JUG"]
    • [Site "New York City, NY USA"]
    • [Site "?"]
  3. Date - la data d'inizio della partita, nel formato "AAAA.MM.GG". Esempi:
    • [Date "1992.08.31"]
    • [Date "1993.??.??"]
    • [Date "????.??.??"]
  4. Round - il numero della partita.
    • [Round "1"]
    • [Round "3.1"]
    • [Round "?"]
  5. White - il nome del giocatore che usa il bianco, nel formato "Cognome, Nome". Esempi:
    • [White "Fischer, Robert J."]
    • [White "Fischer, R."]
    • [White "Anonymous1"]
  6. Black - il nome del giocatore che usa il nero, nel formato "Cognome, Nome". Esempi:
    • [Black "Lasker, Emmanuel"]
    • [Black "Lasker"]
    • [Black "?"]
  7. Result - il risultato della partita. Sono possibili solo le seguenti possibilità:
    • [Result "0-1"] - il nero vince
    • [Result "1-0"] - il bianco vince
    • [Result "1/2-1/2"] - patta
    • [Result "*"] - risultato sconosciuto o partita interrotta o in corso.

La notazione comprende anche:

  • Time - l'ora d'inizio della partita.
  • Termination - informazioni aggiuntive sull'esito della partita; può indicare "abbandono", "intervento arbitrale", "tempo scaduto", eccetera.
  • FEN - la posizione iniziale della scacchiera, in notazione Forsyth-Edwards; viene usato per registrare partite già iniziate. È necessario anche per alcune varianti. Se questa caratteristica è presente, deve essere presente anche una caratteristica SetUp impostata a 1.

Mosse giocate[modifica | modifica sorgente]

Le mosse vengono numerate e descritte in notazione algebrica tramite l'iniziale del pezzo e la casa di destinazione. Ad esempio 3. Ae5 (oppure 3. Be5, in inglese, o ancora 3. e5, in notazione simbolica) significa "terza mossa muove l'Alfiere in e5". 5. Cf3 (5. Nf3, 5. ♘f3) significa "quinta mossa muove il Cavallo in f3". Nel caso dei Pedoni si indica solo la casa di destinazione: 1. e5 significa "prima mossa muove il Pedone in e5".

In caso di conflitto, se cioè due pezzi dello stesso tipo possono muovere nella stessa casa, l'iniziale del pezzo è seguita da:

  • se i due pezzi sono sulla stessa riga: la colonna del pezzo che effettua la mossa, ad esempio Cfd4 che significa "il Cavallo della riga f si muove in d4";
  • se i due pezzi sono sulla stessa colonna: la riga del pezzo che effettua la mossa, ad esempio T7a4 che significa "la Torre della colonna 7 muove in a4";

Mosse speciali vengono ulteriormente specificate:

  • La cattura di un pezzo viene indicata con una x. Ad esempio Dxe4 che significa "la Regina cattura e si porta in e4".
  • Lo Scacco viene indicato con un +. Ad esempio De4+ che significa "la Regina si porta in e4 e mette il Re sotto Scacco".
  • Lo Scacco matto viene indicato con # oppure con ++. Ad esempio De4# oppure De6++
  • L'Arrocco corto viene indicato con O-O [1], mentre l'Arrocco lungo con O-O-O.
  • La Promozione viene indicata con = seguito dall'iniziale del nuovo pezzo. Ad esempio c1=D che significa il pedone raggiunge la casella c1 e viene promosso Regina.

Commenti[modifica | modifica sorgente]

I commenti possono essere inseriti sia su un'unica riga, preceduti da ";", sia su più righe, inseriti tra parentesi graffe. Non è possibile annidare i commenti.

Esempio[modifica | modifica sorgente]

[Event "70th ch-ITA"]
[Site "Siena ITA"]
[Round "10"]
[Date "2010.12.3"]
[White "Caruana, Fabiano"]
[Black "Godena, Michele"]
[Result "1-0"]
1.d4 d5 2.c4 dxc4 3.e4 e5 4.Nf3 Bb4+ 5.Nc3 exd4 6.Nxd4 Ne7 7.Bf4 Bxc3+ 8.bxc3 Ng6 9.Bg3 Qe7 10.Bxc4 Qxe4+ 11.Qe2 Qxe2+ 12.Bxe2 Na6 13.Rb1 O-O 14.O-O Re8 15.Rfe1 Nc5 16.Bxc7 Bd7 17.Bf3 Rxe1+ 18.Rxe1 Rc8 19.Bg3 b6 20.h4 Ne6 21.h5 Ne7 22.Be5 Nc6 23.Nxc6 Bxc6 24.Bg4 Re8 25.Bg3 g6 26.h6 f5 27.Bd1 f4 28.Bh4 Kf8 29.Re5 g5 30.Bh5 Rc8 31.Bxg5 Nxg5 32.Rxg5 Bd7 33.Rg7 Rc5 34.Bf3 Bf5 35.Rxa7 Rxc3 36.Bd5 Bg6 37.Ra4 Rc1+ 38.Kh2 Rc5 39.Rxf4+ Ke7 40.Bf3 Ra5 41.Rb4 b5 42.Bd5 Kf6 43.f4 Bf5 44.Bc6 Bd3 45.Rd4 Ra3 46.Bd5 Bb1 47.Rd1 Bd3 48.Bb3 Bc4 49.Bc2 Ke7 50.Bf5 Rxa2 51.Rd7+ Kf8 52.Rxh7 Bd5 53.Rd7 1-0

Note[modifica | modifica sorgente]

  1. ^ Due o maiuscole: è importante ricordare che non si tratta di due 0 (zero) in quanto i moderni programmi informatici non sono programmati per interpretare 0-0 (zero-zero) come una mossa valida.

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Scanner e parser java del formato PGN fatto con Jflex e Cup