先日コンピュータ将棋選手権で脚光を浴びた将棋ソフト、技巧のソース・バイナリがgithubにて公開されました。
技巧は動作環境の条件も緩く、Max OS X環境でも容易に実行可能とのことなので早速使用してみました。
その時のtipsを以下にまとめておきます。
#本記事で用いたMac環境
MacBook Air(Mid 2012:Intel Core i5 1.8GHz、DDR3 4GB)
Mac OS X 10.11.5(El Capitan)
gcc 4.9.3
Homebrew 0.9.9
Git 2.8.0
Java for Mac OS X
!!!注意!!!
本記事ではターミナル上(MacOSに標準インストールされているターミナル.appなど)にて
Unixコマンドを使用します。予めご了承ください。
###HomebrewとGitのインストール
// homebrewのインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// Gitのインストール
brew install git
#技巧ソースファイル群より実行ファイル生成
まず上記githubサイトより技巧のリポジトリをgit clone
コマンドにてクローンし、
READMEの内容通りにクローンしたフォルダへ移動後にmake release
コマンドを実行すると、
以下の様なエラーが出るケースがあります。
git clone https://github.com/gikou-official/Gikou.git
cd Gikou
make release
clang: error: unsupported option '-fopenmp'
make[1]: *** [obj/release/src/bitboard.o] Error 1
make: *** [release] Error 2
###make releaseがエラーになる原因
これはMacの標準コンパイラがgccではなくclangであり、
clangでは-fopenmp
オプションがサポートされていないのが原因です。
よって-fopenmp
オプションに対応したgcc(ver 4.2以上)をHomebrewを用いてインストールします。
※本記事では都合によりgcc4.9をインストールしていますが、gcc5でも問題ありません。
###make release実行時に参照するgccを設定する方法
まず既存gcc
のパス(プログラムが置いてある場所)をwhich
コマンドにて調べます。
which gcc
which gcc
の結果が/usr/bin/gcc
ならば、下記コマンドを実行してください。
brew install /homebrew/versions/gcc49
sudo ln -sf /usr/local/bin/gcc-4.9 /usr/bin/gcc
sudo ln -sf /usr/local/bin/g++-4.9 /usr/bin/g++
なお上記sudo
コマンド実行時に、macにログインする際に用いるアカウントのパスワードが
必要となります。アカウントにパスワードを設定してないと実行できませんので、
下記サイトを参照してアカウントにパスワードを設定してやってください。
https://support.apple.com/ja-jp/HT202035
また上記sudo
付加コマンドを実行した際にも、Operation not permitted
と出力される場合には、SIP:System Integrity Protection
の一部設定を無効にする必要があります。
その詳細は以下のサイト等をご覧の上、対処してください。
EI Capitanでsudo付けているOperation not permittedが出た時の対処法
http://berukann.hatenablog.jp/entry/2015/12/30/123020
which gcc
の結果が/usr/local/bin/gcc
ならば、下記コマンドを実行してください。
brew install /homebrew/versions/gcc49
ln -s /usr/local/bin/gcc-4.9 /usr/local/bin/gcc
ln -s /usr/local/bin/g++-4.9 /usr/local/bin/g++
上記いずれかのコマンド実行後にターミナルソフトを再起動し、gcc -v
を実行
下記みたいな感じでgcc
のバージョン情報が出力されればOKです。
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc@4.9/4.9.3/bin/../libexec/gcc/x86_64-apple-darwin15.4.0/4.9.3/lto-wrapper
Target: x86_64-apple-darwin15.4.0
Configured with: ../configure --build=x86_64-apple-darwin15.4.0 --prefix=/usr/local/Cellar/gcc49/4.9.3 --libdir=/usr/local/Cellar/gcc49/4.9.3/lib/gcc/4.9 --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-4.9 --with-gmp=/usr/local/opt/gmp4 --with-mpfr=/usr/local/opt/mpfr2 --with-mpc=/usr/local/opt/libmpc08 --with-cloog=/usr/local/opt/cloog018 --with-isl=/usr/local/opt/isl011 --with-system-zlib --enable-libstdcxx-time=yes --enable-stage1-checking --enable-checking=release --enable-lto --with-build-config=bootstrap-debug --disable-werror --with-pkgversion='Homebrew gcc49 4.9.3' --with-bugurl=https://github.com/Homebrew/homebrew-versions/issues --enable-plugin --disable-nls --enable-multilib
Thread model: posix
gcc version 4.9.3 (Homebrew gcc49 4.9.3)
その後改めてmake release
を実行しビルドが完了すれば、./Gikou/bin/
フォルダにrelease
という名のMac用実行ファイルが生成されます。
#関連バイナリを取得する
次に技巧の実行に必要な付随のバイナリファイル(動作時に参照する定跡ファイル等)を取得します。
- まずgithubの技巧リリースページより、
gikou_win_20160601.zip
をダウンロードする。 - ダウンロードしたzipファイルを展開し、'gikou.exe'ファイル以外の全ファイルを先ほどビルド生成したreleaseという名のmac用実行ファイルと同じフォルダパスにコピー&ペーストする。
これで技巧が人間らしい手を指せるようになります。
※なおこの手順を飛ばしても技巧は実行できるようですが、端歩しか突かない等といった弱い手しか指しません。
(最初この手順を抜かしてたため、正しく実行されているのか悩みました・・・)
#GUIアプリケーションを使って技巧と対局してみる
実際に技巧と対戦してみましょう。今回はMac環境でも使える将棋ぶらうざQを使用します。
1.将棋ぶらうざQ公式ページより、将棋ぶらうざQ(for Macバージョン)をダウンロードし、zip展開する。
2.将棋ぶらうざQを実行するにはJava for Mac OS Xが必須なので、必要に応じてインストールする。
3.1.にて展開したフォルダ内にあるSbrowserQ.app
を実行。
4.メニューバーの[設定]->[将棋エンジン設定]を選択
5.[追加]をクリック。
6..項目[エンジンファイルパス]のファイルを選択し、release
ファイル(のパス)を選択したら[追加]ボタンをクリックして終了。
これで対局時にエンジンとして技巧(本記事の場合だと、Gikou 20160601)を選択すれば、晴れて技巧と対局できます。
無論棋譜解析も可能です。
特別スペックの高くないMBAでの実行でしたが、普通に実行させる分には特に問題ありませんでした。