Dans wangjinzhuo / pgd [^ 1], environ 260 000 données de score de jeu professionnel sont stockées au format SGF [^ 2].
Il s'agit d'une abréviation de Smart Game Format (Smart Go Format) et est souvent utilisé pour sauvegarder les jeux Go. (Plutôt, je n'ai jamais rien vu d'autre que Go ...) Vous trouverez ci-dessous un exemple de données SGF [^ 2], où KM représente Komi, B et W représentent respectivement le noir et le blanc, et les deux caractères entre [] représentent la position.
(;FF[4]GM[1]SZ[19]
GN[Copyright goproblems.com]
PB[Black]
HA[0]
PW[White]
KM[5.5]
DT[1999-07-21]
TM[1800]
RU[Japanese]
;AW[bb][cb][cc][cd][de][df][cg][ch][dh][ai][bi][ci]
AB[ba][ab][ac][bc][bd][be][cf][bg][bh]
C[Black to play and live.]
(;B[af];W[ah]
(;B[ce];W[ag]C[only one eye this way])
(;B[ag];W[ce]))
(;B[ah];W[af]
(;B[ae];W[bf];B[ag];W[bf]
(;B[af];W[ce]C[oops! you can't take this stone])
(;B[ce];W[af];B[bg]C[RIGHT black plays under the stones and lives]))
(;B[bf];W[ae]))
(;B[ae];W[ag]))
git clone https://github.com/wangjinzhuo/pgd.git #Téléchargement de l'ensemble de données
pip install -U sgf #Installation de l'analyseur sgf
Vous pouvez lire le jeu en écrivant comme suit.
# -*- coding: utf-8 -*-
import sgf
fpath = u"All/(Kaei 2 ans)1849-10-8_None_Yuzo Ota 7e Dan_None_Honbo Shusaku 6e Dan_None_B+4e.sgf"
print(fpath)
game_tree = sgf.parse(open(fpath).read()).children[0]
node = game_tree.root
while node:
print(node.properties)
node = node.next
All/(Kaei 2 ans)1849-10-8_None_Yuzo Ota 7e Dan_None_Honbo Shusaku 6e Dan_None_B+4e.sgf
{'SZ': ['19'], 'C': ['\xcc\xab\xcc\xef\xd0\xdb\xb2\xd8 = Ota Yuzo, \xb1\xbe\xd2\xf2\xb7\xbb\xd0\xe3\xb2\xdf = Honinbo Shusaku'], 'PW': ['\xb1\xbe\xd2\xf2\xb7\xbb\xd0\xe3\xb2\xdf \xc1\xf9\xb6\xce'], 'RE': ['B+4\xc4\xbf'], 'PB': ['\xcc\xab\xcc\xef\xd0\xdb\xb2\xd8 \xc6\xdf\xb6\xce'], 'PC': [''], 'FF': ['3'], 'DT': ['(\xbc\xce\xd3\xc02\xc4\xea)1849-10-8'], 'HA': ['\xcf\xc8\xcf\xe0\xcf\xc8, \xcf\xc8\xb7\xac']}
{'B': ['qd']}
{'W': ['dc']}
{'B': ['pq']}
{'W': ['qo']}
...
{'W': ['rn']}
{'B': ['sm']}
{'W': ['jb']}
{'B': ['sp']}
{'W': ['no']}
{'C': ['\xb9\xb2289\xca\xd6. \xba\xda4\xc4\xbf\xca\xa4.'], 'B': ['sq']}
Si vous utilisez GNU GO [^ 3], vous pouvez également l'afficher sur la carte au format CUI. Il peut être installé sur macOS avec la commande suivante.
brew tap homebrew/games
brew install gnu-go
Si vous souhaitez afficher jusqu'au 100e coup, vous pouvez l'afficher en écrivant comme suit.
$ gnugo --mode ascii -l "All/(Kaei 2 ans)1849-10-8_None_Yuzo Ota 7e Dan_None_Honbo Shusaku 6e Dan_None_B+4e.sgf" -L 100 --quiet
Beginning ASCII mode game.
Board Size: 19
Handicap 0
Komi: 5.5
Move Number: 99
To Move: white
Computer player: White
white(100): Q12
White (O) has captured 1 pieces
Black (X) has captured 3 pieces
A B C D E F G H J K L M N O P Q R S T Last move: White Q12
19 . . . . . . . . . . . . . . . . . . . 19
18 . . . . . O O . . . . . . . . . O . . 18
17 . O O O O X O X . . X . . . O . . . . 17
16 . X O X O X X X . + . . O . . + X . . 16
15 . . X X X O . . . . . . . . . X . . . 15
14 . . X . O . . . . . . . . . . . . . . 14
13 . X X X X O . . . . . . . . . . . . . 13
12 X . X O O O . . . . . . . . .(O). . . 12
11 . X O . . . . . . . . . . . . . O . . 11
10 . O . + . . . . . + . . . . X X X X . 10
9 . . . . . . . . . . . . . O X O X . . 9
8 . . . X . . . . . . . . . . O O O X . 8
7 . . . . . . . . . . . O O . O X X . . 7
6 . X . X . . . . . . O X O . X O X . . 6
5 . . . O . . . X X X X X O . . O O . . 5
4 . . . + . . O O O O X . X O O O X O . 4
3 . . . O . . . . . . O . X . X X X X . 3
2 . . . . . . . . . . . . . . . . . . . 2
1 . . . . . . . . . . . . . . . . . . . 1
A B C D E F G H J K L M N O P Q R S T
Si vous utilisez GoGui [^ 4], vous pouvez également l'afficher au format GUI.
Si vous utilisez macOS, vous pouvez l'installer avec la commande suivante.
brew tap homebrew/games
brew install go-gui
Go Gui démarre avec la commande suivante.
gogui
References
Recommended Posts