Accueil > Documents > Documents utiles > Explications pour mieux saisir vos parties d’échecs au format (...)

Explications pour mieux saisir vos parties d’échecs au format PGN

jeudi 21 octobre 2004, par Fabien Tanguy.

Saisir des parties d’échecs en PGN

PGN, ça veut dire en anglais : Portable Game Notation

C’est donc une façon de coder simplement dans un fichier informatique une position sur l’échiquier, mais aussi et surtout une partie entière.

Les fichiers en question portent l’extension PGN, et leur contenu est du pur texte, facilement éditable par n’importe quel logiciel prévu à cet effet, comme Notepad par exemple.

(un site en anglais qui décrit en détail le format : http://www.very-best.de/pgn-spec.htm)

Plutôt que d’écrire à partir de zéro un tel fichier, il existe des logiciels d’échecs spécialisés qui génèrent automatiquement le code, à partir d’une partie jouée à l’écran. Avec les grands classiques tels ChessBase, Fritz, ChessTiger, ChessAssistant et consort, on peut facilement choisir le format dans lequel la partie saisie sera sauvée, et donc opter pour le PGN. Il existe un certain nombre d’utilitaires plus ou moins gratuits pour manipuler les PGN, voyez notamment à cette adresse : http://pgn.freeservers.com/

La spécification du format PGN n’est quand-même pas la plus simple, on ne rentrera pas dans le détail. Je vais donner ici le modèle à suivre, concernant le site LMPE, pour une publication optimale sans problème des parties sur l’applet java utilisé pour l’instant.

Exemple : le fichier NAT4RodezMontauban.pgn, après la saisie des deux premières tables

[Event "N4 - Rodez / Montauban"]

[Site "Rodez"]

[Date "2004.10.10"]

[Round "1"]

[White "TANGUY, Fabien"]

[Black "CANIVET, Christophe"]

[Result "1-0"]

[ECO "A20"]

[WhiteElo "2094"]

[BlackElo "1954"]

[PlyCount "55"]

1. g3 d5 2. Bg2 e5 3. c4 Nf6 4. cxd5 Nxd5 5. Qa4+ Bd7 6. Qe4 Be6 7. Nc3 Nxc3 8.

bxc3 Nc6 9. Rb1 f5 10. Qa4 Bd7 11. Rxb7 Nb4{une erreur} 12. Qb3 Rb8 13. Rxb8 Qxb8 14. cxb4

Qb6 15. Nh3 Be6 16. Bd5 Bxd5 17. Qxd5 Bxb4 18. Qa8+{facile !} Ke7 19. Qxh8 Bxd2+ 20. Kxd2

Qb4+ 21. Kd1 Qd4+ 22. Ke1 Qc3+ 23. Kf1 Qxc1+ 24. Kg2 Qc6+ 25. f3{fini...} Qc2 26. Qxg7+

Kd6 27. Qf8+ Kd5 28. Rd1+ 1-0

[Event "N4 - Rodez / Montauban"]

[Site "Rodez"]

[Date "2004.10.10"]

[Round "1"]

[White "HOAREAU, Nicolas"]

[Black "BONNAVENC, Arnaud"]

[Result "1-0"]

[ECO "A46"]

[WhiteElo "1880"]

[BlackElo "1860"]

[PlyCount "33"]

1. d4 Nf6 2. Nf3 e6 3. Nbd2 c5 4. e3 cxd4 5. exd4 Be7 6. c3 O-O 7. Bd3 d5 8.

O-O Nc6 9. Ne5 Qc7 10. f4 a6 11. Rf3 g6 12. Qe2 Ne8 13. Rh3 Nxe5 14. fxe5 f6

15. Rxh7 Kxh7 16. Qh5+ Kg8 17. Qxg6+ 1-0

On constate qu’une partie d’échecs est composée de deux blocs, l’en-tête et la partie jouée.

1) La partie :

Il n’y a pas grand chose à dire, c’est codé à l’anglaise, c’est comme ça.

Les commentaires éventuels se mettent entre accolades, on évitera les commentaires au tout début de la partie, avant même le "1.", car ça fait planter l’applet java.

Pour info, les variantes sont codées entre parenthèses, les commentaires des variantes ainsi que les variantes des variantes ne semblent pas passer avec l’applet...

2) L’en-tête :

Objet de tous les soins. C’est grâce à ce bloc que vous pouvez retrouver une partie précise parmi des millions d’autres dans une base. L’ordre dans lequel apparaissent les champs entre crochets n’a pas vraiment son importance, en revanche je conseille à tous de mettre si possible tous les champs présentés dans l’exemple ci-dessus. Je sais notamment que s’il manque le champ [Site "xxxxx"], alors l’applet java ne charge pas correctement le fichier...

(bien entendu, il faut remplacer les xxxxx par la donnée adéquate !)

- [Event "xxxxx"] -> le nom du tournoi, de la rencontre. Il doit être identique pour toutes les parties jouées lors de cette même rencontre.

- [Site "xxxxx"] -> le lieu de la rencontre. Idem.

- [Date "xxxxx"] -> la date, au format AAAA.MM.JJ

- [Round "xxxxx"] -> numéro de la ronde.

- [White "xxxxx, xxxxx"] et [Black "xxxxx, xxxxx"] -> ici, il est important de respecter une certaine cohérence pour les noms et prénoms des joueurs. Afin de différencier facilement le nom du prénom, je préconise de mettre toujours le nom entièrement en majuscules, et le prénom en minuscules (avec l’initiale du prénom en majuscule car quand-même c’est un nom propre !...)

- [Result "xxxxx"] -> le score, 3 possibilités bien sûr : "1-0", "0-1" ou bien "1/2-1/2".

- [ECO "xxxxx"] -> c’est le code de l’ouverture, ça intéresse des gens. Il faut laisser le logiciel s’occuper automatiquement de cette zone. Je ne pense pas qu’elle soit obligatoire pour l’applet.

- [WhiteElo "xxxxx"] et [BlackElo "xxxxx"] -> pas besoin d’être une bête en anglais pour comprendre...

- [PlyCount "xxxxx"] -> c’est le nombre de demi-coups joués dans la partie.

Pour résumer, après avoir saisi toutes les parties d’une rencontre, il faut s’assurer :

- d’avoir bien écrit les noms tout en majuscule, et les prénoms "normalement"

- d’avoir le champ [Site "xxxxx"] (lieu de la rencontre) bien présent dans les en-têtes

- qu’il n’y ait pas de commentaires avant le premier coup d’une partie

L’intérêt d’une telle harmonisation est de rendre possible une recherche efficace parmi les centaines de parties, et de faciliter les manipulations de ces parties par des programmes (applets, codes php, scripts...) existants et à venir.

Voilà.

Bonnes parties !

Site réalisé avec SPIP | Plan du site
Habillage visuel © digitalnature sous Licence GPL