Smart Game Format
# Smart Game Format

SGF (Smart Game Format) est un format de fichier utilisé pour sauvegarder des parties de jeu de go. Il a été conçu en 1987 mais a été étendu depuis pour supporter d’autres jeux, parmi lesquels Lines of Action, Backgammon, Hex, Amazons, Octi, Gess, etc.

Le jeu de go est le plus souvent représenté dans ce format.

## Notice technique

SGF est un format de fichier texte simple. La structure de données sous-jacente représente une arborescence.

La dernière spécification SGF a été réalisée en 2006.

Le jeu de go se pratique surtout en Chine, au Japon et en Corée, mais le format SGF ne permet pas de spécifier des traductions de texte.

On peut le manipuler par divers outils.

## Exemple

Exemple simple d'un début de partie (5 coups sont joués):

## Syntaxe

Le format SGF est formé d'une collection d'une ou plusieurs parties (plus précisément d'arbres de parties). Chaque partie est délimitée par des parenthèses: "(" et ")". Une partie est représentée par une suite de propriétés sous la forme: clé[valeur]. Les propriétés servent à définir aussi bien les coups que les informations générales sur la partie. Voici une liste non exhaustive de clés, ou identifieurs, de propriété :

| Identifieur | Signification |
| - | - |
| GM | Type de jeu. Ex: "1" pour le Go. |
| FF | Version du format SGF. Ex: "4". |
| CA | Encodage des caractères. |
| AP | Application utilisée pour créer/éditer le fichier. |
| RU | Règles. Ex: "Japanese" pour les règles japonaises. |
| SZ | Taille du plateau. Ex: "19" pour un plateau carré, "9:10" pour un plateau rectangulaire. |
| KM | Komi (spécifique au jeu de Go). |
| PW | Nom du joueur blanc. |
| PB | Nom du joueur noir. |
| WR | Classement du joueur blanc |
| BR | Classement du joueur noir. |
| TM | Temps à la pendule, en secondes. |
| DT | Date de la partie. Ex: "2020-05-23". |
| RE | Résultat de la partie. Ex: "B+14" signifie que les blancs gagnent de 14 points. |
| HA | Handicap, en nombre de pierres. |
| AB | Liste des coordonnées des pierres de handicap. Cette propriété peut avoir plusieurs valeurs. |
| C | Un commentaire. |
| Déroulement de la partie ||
| W | Coup pour les blancs. |
| B | Coup pour les noirs. |
| WL | Temps restant aux blancs, en secondes. |
| BL | Temps restant aux noirs, en secondes. |

Notes:

* Plusieurs variations peuvent être décrites dans une même partie. Chaque variation est délimitée par des parenthèses.
* Un point-virgule (";") commence chaque nœud de la partie, y compris le premier nœud.

## Système de coordonnées

Les coordonnées sur le plateau sont représentées sous forme de deux lettres minuscules, de "a" à "s" pour un plateau de Go de taille 19x19.

La première lettre désigne la colonne (de gauche à droite), la seconde lettre désigne la ligne (de haut en bas).

Par exemple, "dc" représente l'intersection de la 4ème colonne et de la 3ème ligne (en haut à gauche du plateau).

Ce choix a été fait par souci de simplicité et de compacité, comparé à la notation traditionnelle.

