TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

Pythonで将棋の盤面をSVGで表示する

以前に作成したPython向けの高速な将棋ライブラリ「cshogi」に、盤面をSVGで表示する機能を追加した。

Jupyter Notebookで実行すると、以下のように盤面が画像で表示されるので視認しやすくなる。

from cshogi import *
board = Board()
board

987654321

直前の指し手も表示できる。

move = board.push_usi(b'7g7f')
board.to_svg(move)

987654321

持ち駒がある場合は以下のように表示される。

board.set_sfen(b'8l/1+B+P1G4/1K+B1+P1+Pp1/4Ppp2/3s1n2p/l2g2ks1/1P4+n1P/2r6/+p6+s1 b R2GSNL4Pnl3p 187')
board

987654321

Jupyter Nodebook

Google Colabで使い方がわかるJupyter Nodebookを公開したので参考にして欲しい。
colab.research.google.com

余談

先日将棋AIで学ぶディープラーニングのJupyter Notebookを公開したが、対局するには手順が多いため、Google Colabで完結して対局できるようにしたいと思っている。
そのための準備として、盤面の表示機能を追加した。
今後、(別ライブラリにするかもしれないが)usiエンジン同士の対局機能も追加する予定。