[PYTHON] Regardez le score de Go d'un joueur de Go professionnel

Dans wangjinzhuo / pgd [^ 1], environ 260 000 données de score de jeu professionnel sont stockées au format SGF [^ 2].

Qu'est-ce que la SGF

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]))

Télécharger les données du jeu

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

Lire le jeu

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

Résultat d'exécution

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']}

Regardez le match avec GNU GO

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

Regardez le match avec GoGui

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

image.png

References

Recommended Posts

Regardez le score de Go d'un joueur de Go professionnel
Jetons un coup d'œil à la carte des fonctionnalités de YOLO v3
Résumez le titre de Hottentori dans Hateb et regardez le présent du Web
Cours de base Python (à la fin de 15)
Envoyer Gmail à la fin du processus [Python]
[Chez Coder] Résoudre le problème de la dichotomie
Au moment de la mise à jour de python avec ubuntu
Supprimer une chaîne spécifique à la fin de python
J'ai jeté un œil au contenu de sklearn (scikit-learn) (1) ~ Qu'en est-il de l'implémentation de CountVectorizer? ~