[PYTHON] Schauen Sie sich die Go-Punktzahl eines professionellen Go-Spielers an

In wangjinzhuo / pgd [^ 1] werden ungefähr 260.000 professionelle Spielergebnisdaten im SGF-Format [^ 2] gespeichert.

Was ist SGF?

Es ist eine Abkürzung für Smart Game Format (Smart Go Format) und wird häufig zum Speichern von Go-Spielen verwendet. (Vielmehr habe ich noch nie etwas anderes als Go gesehen ...) Unten sehen Sie ein Beispiel für SGF-Daten [^ 2], wobei KM Komi darstellt, B und W Schwarz bzw. Weiß darstellen und die beiden Zeichen in [] die Position darstellen.

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

Spieldaten herunterladen

git clone https://github.com/wangjinzhuo/pgd.git #Datensatz herunterladen
pip install -U sgf #Installieren des SGF-Parsers

Das Spiel lesen

Sie können das Spiel lesen, indem Sie wie folgt schreiben.

# -*- coding: utf-8 -*-
import sgf

fpath = u"All/(Kaei 2 Jahre)1849-10-8_None_Yuzo Ota 7. Dan_None_Honbo Shusaku 6. Dan_None_B+4 ...sgf"
print(fpath)
game_tree = sgf.parse(open(fpath).read()).children[0]
node = game_tree.root
while node:
    print(node.properties)
    node = node.next

Ausführungsergebnis

All/(Kaei 2 Jahre)1849-10-8_None_Yuzo Ota 7. Dan_None_Honbo Shusaku 6. Dan_None_B+4 ...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']}

Beobachten Sie das Spiel mit GNU GO

Wenn Sie GNU GO [^ 3] verwenden, können Sie es auch im CUI-Format auf der Karte anzeigen. Es kann unter macOS mit dem folgenden Befehl installiert werden.

brew tap homebrew/games
brew install gnu-go

Wenn Sie bis zum 100. Zug anzeigen möchten, können Sie dies wie folgt anzeigen.

$ gnugo --mode ascii -l "All/(Kaei 2 Jahre)1849-10-8_None_Yuzo Ota 7. Dan_None_Honbo Shusaku 6. Dan_None_B+4 ...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

Beobachten Sie das Spiel mit GoGui

Wenn Sie GoGui [^ 4] verwenden, können Sie es auch im GUI-Format anzeigen.

Wenn Sie macOS verwenden, können Sie es mit dem folgenden Befehl installieren.

brew tap homebrew/games
brew install go-gui

Go Gui startet mit dem folgenden Befehl.

gogui

image.png

References

Recommended Posts

Schauen Sie sich die Go-Punktzahl eines professionellen Go-Spielers an
Werfen wir einen Blick auf die Feature-Map von YOLO v3
Fassen Sie den Titel von Hottentori in Hateb zusammen und schauen Sie sich die Gegenwart des Web an
Python-Grundkurs (Ende 15)
Senden Sie Google Mail am Ende des Vorgangs [Python]
[Bei Coder] Lösen Sie das Problem der Dichotomie
Zum Zeitpunkt des Python-Updates mit Ubuntu
Entfernen Sie eine bestimmte Zeichenfolge am Ende von Python
Ich habe mir den Inhalt von sklearn (scikit-learn) angesehen. (1) ~ Was ist mit der Implementierung von CountVectorizer? ~