Pythonの高速な将棋ライブラリcshogiにUSIエンジン同士の対局機能を追加した。
先日、cshogiにJupyter Notebook上で盤面をSVGで表示できるようにしたが、その機能を使って対局中の盤面を表示するようにしている。
これによって、Google Colab上で、USIエンジン同士の対局を観戦できるようになる。
以下のようにして、Google Colab上でUSIエンジン同士の対局ができる。
インストール
!pip install git+https://github.com/TadaoYamaoka/cshogi
USIエンジン同士で対局する
from cshogi import cli cli.main('/content/LesserkaiSrc/Lesserkai/Lesserkai', '/content/LesserkaiSrc/Lesserkai/Lesserkai')
以下のように1手ずつ盤面が表示され、終局すると結果が表示される。
(エンジンに送るUSIコマンドとエンジンからのinfo出力も、そのまま出力している。)
連続対局
連続対局することもできる。
# 設定例:対局数2回、秒読み1秒 cli.main('/content/LesserkaiSrc/Lesserkai/Lesserkai', '/content/LesserkaiSrc/Lesserkai/Lesserkai', games=2, byoyomi=1000)
手動操作
USIエンジンを手動で操作することもできる。
from cshogi.usi import Engine engine = Engine('/content/LesserkaiSrc/Lesserkai/Lesserkai') engine.isready() engine.usinewgame() engine.position() engine.go() engine.quit()
チュートリアル
Google Colabで使い方がわかるJupyter Nodebookを公開したので参考にして欲しい。
colab.research.google.com
cshogiの仕様変更
今まで指し手などを文字列を引数で渡す場合、バイト文字列としていたが、標準の文字列型に変更した。
互換性がなくなっているため、既存のプログラムの修正が必要になる。
以前に作成したdlshogi-zeroも修正が必要なため、後日対応する予定。
今後の予定
将棋AIで学ぶディープラーニングのJupyter Notebookを、Google Colab上で対局できるようにする予定。