AI プログラムに触れるきっかけとしてゲームは、AIへの敷居を低くしてくれるでしょう。将棋所 は、将棋エンジンを使って対局・棋譜解析・検討などができる将棋ソフトですが、Windows 版しか用意されていませんが、.NET Framework互換の Mono を使用すれば将棋所を動かすことが出来ます。将棋所は、多くの将棋ファンが開発している将棋のエンジンを変更して楽しむことができます。今回は、やねうら王というエンジンを搭載してプレーする方法を紹介したいと思います。
将棋所、エンジンをインストールする上で必要なパッケージをインストールします。
$ sudo apt install mono-complete clang fonts-takao
http://shogidokoro.starfree.jp/download.html
より 将棋所をダウンロードして、展開します。
$ unzip ~/ダウンロード/Shogidokoro.zip
次にエンジンのやねうら王を
https://github.com/yaneurao/YaneuraOu/tags
から最新の Source Code tar.gz ダウンロードします。
$ tar xvfz ~/ダウンロード/YaneuraOu-4.91.tar.gz
$ cd YaneuraOu-4.91/source/
次に将棋で指し手を決定するときに、この指し手で進めた局面は何点という局面評価値を決定する局面評価ファイルの形式を選択します。今回は、KPPT型評価関数を使うので以下の箇所を編集して make します。
Makefile
#YANEURAOU_EDITION = YANEURAOU_ENGINE_NNUE <- コメント化
YANEURAOU_EDITION = YANEURAOU_ENGINE_KPPT <- コメントを外す
局面評価ファイルは多くの将棋ファンが公開しているので、このオプションを変更してファイルを読み替え試してみて下さい。
$ make
バイナリの YaneuraOu-by-gcc が作成されたので、エンジンの保存ディレクトリを作成してコピーしておきます。
$ mkdir -p ~/Shogidokoro/Engine/YaneuraOu/bin/
$ cp YaneuraOu-by-gcc ~/Shogidokoro/Engine/YaneuraOu/bin/
$ cd
局面評価ファイルを
https://github.com/yaneurao/YaneuraOu/blob/master/docs/README2017.md
より「リゼロ評価関数 epoch 8」をダウンロードし展開します。
$ unzip ~/ダウンロード/re_eval_from_zero_part4.zip
エンジンと評価関数を ~/Shogidokoro/Engine/YaneuraOu/rezero_epoch8/ に配置して engine_name.txt に名前を設定します。
$ mkdir -p ~/Shogidokoro/Engine/YaneuraOu/rezero_epoch8/
$ mv epoch8/ ~/Shogidokoro/Engine/YaneuraOu/rezero_epoch8/eval/
$ cd ~/Shogidokoro/Engine/YaneuraOu/rezero_epoch8/
$ ln -s ../bin/YaneuraOu-by-gcc .
$ echo 'リゼロ評価関数 epoch 8' > engine_name.txt
そしてようやく将棋所を起動します。
$ mono ~/Shogidokoro/Shogidokoro.exe
起動したら、「対局」→「エンジン管理」を開きます。エンジン一覧で「追加」をクリックし、~/Shogidokoro/Engine/YaneuraOu/rezero_epoch8/YaneuraOu-by-gcc を選択します。
エンジンを追加したら、メニューから「対局」->「対局…」を選びます。
後手を「人間」から「エンジン」に切り替え、「リゼロ評価関数 epoch 8」とします。持ち時間や、その他の条件を設定して「OK」をクリックするとゲームがスタートします。