Mac
コンピュータ将棋
shogi

技巧をMac環境で使う

More than 1 year has passed since last update.

先日コンピュータ将棋選手権で脚光を浴びた将棋ソフト、技巧のソース・バイナリがgithubにて公開されました。

将棋ソフト「技巧」 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用実行ファイルが生成されます。

関連バイナリを取得する

次に技巧の実行に必要な付随のバイナリファイル(動作時に参照する定跡ファイル等)を取得します。

  1. まずgithubの技巧リリースページより、gikou_win_20160601.zipをダウンロードする。
  2. ダウンロードしたzipファイルを展開し、'gikou.exe'ファイル以外の全ファイルを先ほどビルド生成したreleaseという名のmac用実行ファイルと同じフォルダパスにコピー&ペーストする。

6.png

これで技巧が人間らしい手を指せるようになります。
※なおこの手順を飛ばしても技巧は実行できるようですが、端歩しか突かない等といった弱い手しか指しません。
(最初この手順を抜かしてたため、正しく実行されているのか悩みました・・・)

GUIソフトを使って技巧と対局してみる

実際に技巧と対戦してみましょう。今回はMac環境でも使える将棋ぶらうざQを使用します。

1.将棋ぶらうざQ公式ページより、将棋ぶらうざQ(for Macバージョン)をダウンロードし、zip展開する。
2.将棋ぶらうざQを実行するにはJava for Mac OS Xが必須なので、必要に応じてインストールする。
3.1.にて展開したフォルダ内にあるSbrowserQ.appを実行。
4.メニューバーの[設定]->[将棋エンジン設定]を選択

スクリーンショット 2016-06-03 14.27.26.png

5.[追加]をクリック。

5.png

6..項目[エンジンファイルパス]のファイルを選択し、releaseファイル(のパス)を選択したら[追加]ボタンをクリックして終了。

4.png

これで対局時にエンジンとして技巧(本記事の場合だと、Gikou 20160601)を選択すれば、晴れて技巧と対局できます。

1.png

無論棋譜解析も可能です。
特別スペックの高くないMBAでの実行でしたが、普通に実行させる分には特に問題ありませんでした。

参照

MacでMPIとopenmpをハイブリッドにつかえる環境を構築する