雨谷の日和

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

AI将棋ソフト『MyShogi』をMacBookProでビルド&遊んでみた

★この記事を書いた時点では本家版はMacOSX未対応でしたが、その後正式に対応したので、現在この記事の内容は古くなっています。詳しくは本家版のGitHubを参照ください。


AI将棋界隈では評判の将棋神やねうら王、その商用版の元になっている(または機能制限版である)MyShogiを、なんと、MacOSXでビルド&遊べるようにしてくれた方がおられるというので、早速私も試してみました。

詳細は以下のGitHubの解説通りにやればなんとかなるのですが、一応ビルド&実行ログをここに記載しておきます。

github.com

ちなみに当方のマシンスペック&OSバージョンは以下の通り。

$ 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: 15.16.6805.0.0,0

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.6
BuildVersion:   17G2307

1. monoのインストール

2. mono関連コマンドの動作確認

  • terminalを起動して作業する。
  • monoをインストールしてもコマンドへのパスは通してくれないみたいなので、mono関連のコマンドを使う場合は予め以下のPATHを通しておく。
$ export PATH=${PATH}:/Library/Frameworks/Mono.framework/Commands
  • 今回ビルドに成功したmonoのバージョン情報は以下の通り。
$ mono --version

Mono JIT compiler version 5.14.0.177 (2018-04/f3a2216b65a Fri Aug  3 09:28:16 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/8b1520c8aae)
    GC:            sgen (concurrent by default)

3. MyShogi関連のダウンロード

  • 適当に作業用フォルダを作成する。
  • デスクトップとかに作成しても良い。
  • <作業用フォルダ>にcdで移動し、git cloneにてC#プロジェクトをダウンロードする。
$ git clone https://github.com/jnory/MyShogi.git

以下のようなフォルダ構成でダウンロードされる。

[作業用フォルダ]
  +-- MyShogi
       +-- MyShogi
         +-- bin
           +-- Debug
         +-- ...(色々ある)
         +-- MyShogi.csproj
       +-- MyshogiUpdater
       +-- SetupYaneuraOu
       +-- MyShogi.sln
       +-- README.md
  • 「MyshogiUpdater」「SetupYaneuraOu」などの魅了的なフォルダもあるが、恐らくWindows用の何かなので、MacOSXでは気にしない。

4. プロジェクトの言語バージョンの編集

  • ダウンロードしたプロジェクト情報だと、バージョンが7.3になっているが、monoは7.2までしかサポートしていないようなので、そこを書き換えてしまう。
  • 具体的には以下の「LangVersion」が「7.3」となっている2箇所を「latest」にする。
  • 編集はテキストエディタでもなんでも良い(もちろんterminalからviで良い)。
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <LangVersion>7.3</LangVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <LangVersion>7.3</LangVersion>
  </PropertyGroup>

5. ビルド

  • 「<作業用フォルダ>/MyShogi/MyShogi」フォルダにcdで移動する。
  • 以下のコマンドにてビルドする。
$ export PATH=${PATH}:/Library/Frameworks/Mono.framework/Commands
$ msbuild ../MyShogi.sln /p:Configuration=Debug /p:CscToolExe=csc /p:CscToolPath=$(dirname $(which mono))
  • ビルドには、インストールしたcsc.exeを明示的に指定する必要がある。
  • そうしないと、プロジェクト情報に記載の「Microsoft.Net.Compilers.2.8.2/tools」を使いに行こうとして失敗する。
  • ビルド後、「<作業用フォルダ>/MyShogi/Myshogi/bin/Debug」フォルダに実行ファイルができていればOK。

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

  • どこでもいいので、<実行用フォルダ>を作成し、「<作業用フォルダ>/MyShogi/Myshogi/bin/Debug」フォルダの中身を全てコピーする。
  • <実行用フォルダ>に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

7. MyShogiの実行

  • 実行用フォルダにて、以下のコマンドを実行する(初回実行はmonoの初期化か何かで起動までに時間がかかるが、2回目以降はすぐに起動する)。
$ export PATH=${PATH}:/Library/Frameworks/Mono.framework/Commands
$ mono --arch=32 MyShogi.exe
  • 細々したところでメッセージが豆腐だったり、アラート出たり、突然落ちたりするけど、普通に遊ぶ分には問題ない感じ。
  • Mac向けの商用版が出たら買うと思うけども、今はとりあえずこれで楽しめるのでおっけー。
  • しかし当方、将棋弱いので全く太刀打ちできないでござる……。

スクリーンショットf:id:amado:20180927001345p:plain

Enjoy!