TadaoYamaokaの日記

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

cshogiにWebアプリを追加

開発しているPythonの高速な将棋ライブラリcshogiに、ブラウザでUSIエンジン同士の対局が行える機能を追加した。
f:id:TadaoYamaoka:20210710233101p:plain

python -m cshogi.web.app --engine1 E:\game\shogi\gikou2_win\gikou.exe --engine2 E:\game\shogi\apery_wcsc28\bin\apery_wcsc28_bmi2.exe --byoyomi 1000 --port 8000

のように実行して、ブラウザから「http://localhost:8000/」にアクセスして、USIエンジン同士の対局を観戦することができる。

これだけだと、将棋所のような便利なネイティブアプリがあるのでわざわざこの機能を使う必要はないが、Google Colab上で実行することができる。

Google Colabで実行

USIエンジン同士の対局
# cshogiインストール
!pip install cshogi

# Lesserkaiビルド
!wget http://shogidokoro.starfree.jp/download/LesserkaiSrc.zip
!unzip LesserkaiSrc.zip
%cd LesserkaiSrc/Lesserkai
!make
%cd -

# 対局実行
import cshogi.web.app
cshogi.web.app.colab(engine1='/content/LesserkaiSrc/Lesserkai/Lesserkai', engine2='/content/LesserkaiSrc/Lesserkai/Lesserkai', byoyomi=1000)

のようにして実行できる。
f:id:TadaoYamaoka:20210710233717p:plain

人間との対局

engine1もしくは、engine2に「human」を指定すると、人間との対局もできる。

cshogi.web.app.colab(engine1='human', engine2='/content/LesserkaiSrc/Lesserkai/Lesserkai', byoyomi=1000)

まとめ

GPUをもっていない方にも、Google Colab上でディープラーニングの将棋AIの学習から、自分で学習したモデルとの対局を体験してもらいたくてWebアプリを開発した。

バックエンドは、Colabに標準でインストールされているFlaskを使用して、フロントエンドはBootstrapとjQueryを使用した。
デザインはシンプルで、ほぼ最低限の機能しか実装していないので、徐々に使いやすくしていきたい。
バグなど教えてもらえると助かります。