雨谷の日和

過去15年で1,900を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

AI将棋ソフト『MyShogi』をMacBookProでビルド&遊んでみた2(本家版)

AI将棋界隈では評判の将棋神やねうら王、その商用版の元になっている(または機能制限版である)MyShogi、なんと本家版がMacOSXでビルド&遊べるようになったとの話です。

github.com

以前に、fork版でビルドしてみたこともあったのですが、本家版がMacOSXに対応というのは本当に感謝しかないです。いや、自分で使う環境以外へのポーティング作業って本当にモチベーション上がらないものなので、それをボランティアベースでやってしまう本家およびその協力者の方々のご尽力というのは凄いことなんですよ。

ちなみに当方のマシンスペック&OSバージョンは以下の通り。なんと血迷ってMacOSXをMojaveにアップデートしてしまっているので、人柱力の高まりをひしひしと感じます。

$ system_profiler SPHardwareDataType
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro15,2
      Processor Name: Intel Core i7
      Processor Speed: 2.7 GHz
      Number of Processors: 1
      Total Number of Cores: 4
      L2 Cache (per Core): 256 KB
      L3 Cache: 8 MB
      Memory: 16 GB
      Boot ROM Version: 220.200.252.0.0 (iBridge: 16.16.375.0.0,0)

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14
BuildVersion:   18A391

以下は大まかな作業の流れです。前回とほぼ同じなので詳細を割愛しているところもありますが、一通り真似すれば動かすことはできるはずです。

1. monoのインストール&動作確認

  • 以下から、OSX用のmonoの最新のインストーラをダウンロードし、それからインストールを実施します。
  • インストール後、terminalで以下のコマンドを叩いてmonoのバージョン情報が表示されればOKです。
$ mono --version
Mono JIT compiler version 5.16.0.179 (2018-06/6e48ad4f7b1 Wed Oct  3 14:05:19 EDT 2018)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       altstack
    Notification:  kqueue
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    Interpreter:   yes
    LLVM:          yes(3.6.0svn-mono-master/0b3cb8ac12c)
    GC:            sgen (concurrent by default)

2. MyShogi関連のダウンロード&ビルド

  • 適当に作成した<作業用フォルダ>にcdで移動し、git cloneにてC#プロジェクトをダウンロードします。
$ git clone https://github.com/yaneurao/MyShogi.git
  • 「<作業用フォルダ>/MyShogi/MyShogi」フォルダにcdで移動し、以下のコマンドにてビルドします(本家公式ドキュメント通り)。
    • 前回ビルドした時と異なり、プロジェクトの言語バージョンの編集や、ビルドコマンドのオプション指定は不要です。
$ msbuild MyShogi.sln /p:Configuration=macOS

3. 実行用フォルダの整備

  • どこでもいいので、<実行用フォルダ>を作成し、「<作業用フォルダ>/MyShogi/Myshogi/bin/MacOS」フォルダの中身を全てコピーします。
  • <実行用フォルダ>にcdで移動し、以下のコマンドにて実行に必要な画像と、将棋の思考エンジンをダウンロードします。
$ git clone https://github.com/jnory/MyShogiImages.git image
$ git clone https://github.com/jnory/MyShogiEngineSample.git engine
  • ダウンロードするとできる「<実行用フォルダ>/engine/yaneuraou2018」フォルダ直下に「eval」フォルダと「book」フォルダを作成します。
  • その後、「<実行用フォルダ>/engine」フォルダ直下にあるREADME.mdに記載の指示通りに評価関数と定跡ファイルを格納します。

(以下、引用)

1. https://github.com/yaneurao/YaneuraOu/blob/master/README.md を参照し、
「リゼロ評価関数 KPP\_KKPT型 epoch4」をダウンロードした上、evalフォルダの下にファイルを展開して下さい。

2. https://github.com/yaneurao/YaneuraOu/releases/tag/v4.73_book を参照し、
お好きな定跡ファイルをダウンロードしてbookフォルダの下にファイルを展開して下さい。

最終的に、以下のようなフォルダ構成になります。

<実行用フォルダ>
  +-- engine
    +-- README.md
    +-- yaneuraou2018
      +-- engine_define.xml
      +-- GPLv3.txt
      +-- README.md
      +-- yaneuraou2018_kpp_kkpt_sse42.exe
      +-- book
        +-- yaneura_book3.db  ★ここは選んだ定跡によってファイル名が異なる
      +-- eval
        +-- KK_synthesized.bin
        +-- KKP_synthesized.bin
        +-- KPP_synthesized.bin
  +-- image
    +-- (色々な画像ファイル)
  +-- MyShogi.exe
  +-- MyShogi.exe.config
  +-- MyShogi.pdb

4. MyShogiの実行

  • <実行用フォルダ>にて、以下のコマンドを実行します(本家公式ドキュメント通り)。
    • 初回実行はmonoの初期化か何かで起動までに時間がかかりますが、2回目以降はすぐに起動します。
    • 前回のようにパスを通したりといった話は不要です。
$ mono --arch=32 MyShogi.exe
  • 今のところ、特に不具合には遭遇していないので、実はこれ本当にMacOSX対応できているのでは!?
  • 当方ヨワヨワでCPUにまったく太刀打ちできないところは相変わらず……。
  • なお、前回のMacOSX版forkを作ってくれていたjnoryさんが、今度はMacOSX版での音を鳴らすためのモジュールを作ってくれているようなのですが、今回は試していません。次の機会に試してみようかと。

スクリーンショット

f:id:amado:20181028194338p:plain

enjoy!