40 yaneurao/MyShogi で遊ぶ

将棋, Mono, Git, 何となく興味のある要素が含まれているので、、、

「AI将棋ソフト『MyShogi』をMacBookProでビルド&遊んでみた2(本家版)」 を参考にビルド (と言うんだね) してみた。 書いてあることほぼそのままで出来た。

MyShogi というのは、 このところ話題の将棋ソフトやねうら王の将棋用GUIである。

  1. Mono をインストールする。
    Mono is a software platform designed to allow developers to easily create cross platform applications part of the .NET Foundation.
    macOS|Mono というサイトの download page から必要なファイルを入手する。 2018/11/17 現在、 MonoFramework-MDK-5.16.0.179.macos10.xamarin.universal.pkg が安定版の最新である。実行して特に難しいところはなく終了する。

    ターミナルから利用するために、PATH に /Library/Frameworks/Mono.framework/Versions/Current/bin を追加する (以前試したときは自分でやらずに済んだ覚えがあるけれど… あ、/etc/path.d/ にファイルを置くのか。知らなかった。)。

    動くかどうか、最低限のチェック
    mono --version
    
    もう少し真面目にチェックする。 Mono Basics から Console Hello World
    hello.cs
    using System;
     
    public class HelloWorld
    {
        static public void Main ()
        {
            Console.WriteLine ("Hello Mono World");
        }
    }
    
    を入手して、コンパイル…(とか言いたくなるけれど、 この文化圏ではビルドって言うのか?)
    こうやってビルド&実行
    % csc hello.cs
    Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc)
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    % mono hello.exe
    Hello Mono World
    %
    
    (csc って、C# コンパイラーという意味なのかな…)

  2. 適当なディレクトリィに移り、git clone で MyShogi をダウンロードし、 ビルドする。
    mkdir ~/yane
    cd ~/yane
    git clone https://github.com/yaneurao/MyShogi.git
    cd MyShogi
    msbuild MyShogi.sln /p:Configuration=macOS
    
    (MyShogi/MyShogi でするように書いてあったけれど… 2個の警告は出たけれど、とにかくビルドは成功した。 それにしても「あっ」と言う間だな。)
  3. 実行用のディレクトリィを作り、そこにビルドした MyShogi.exe, MyShogi.exe.config, MyShogi.pdb をコピーし、git clone で盤駒などのイメージや、 やねうら王エンジンをダウンロードし、 eval, book というディレクトリィ (評価関数用、定跡ファイル用) を作る。
    実行用ディレクトリィを作り準備を整える
    mkdir ~/yane-asobu
    cp -p MyShogi/bin/macOS/* ~/yane-asobu
    cd ~/yane-asobu
    git clone https://github.com/jnory/MyShogiImages.git image
    git clone https://github.com/jnory/MyShogiEngineSample.git engine
    mkdir engine/yaneuraou2018/{eval,book}
    
  4. https://github.com/yaneurao/YaneuraOu/blob/master/README.mdの中で紹介されているリゼロ評価関数 KPP_KKPT型 epoch4 rezero_kpp_kkpt_epoch4.zip を入手し、中のファイルを eval に移す。
    unzip rezero_kpp_kkpt_epoch4.zip
    mv rezero_kpp_kkpt_epoch4/*.bin ~/yane-asobu/engine/yaneuraou2018/eval
    
  5. https://github.com/yaneurao/YaneuraOu/releases/tag/v4.73_bookに定跡ファイルが色々置いてある。
    wget https://github.com/yaneurao/YaneuraOu/releases/download/v4.73_book/standard_book.zip
    wget https://github.com/yaneurao/YaneuraOu/releases/download/v4.73_book/yaneura_book1_V101.zip
    wget https://github.com/yaneurao/YaneuraOu/releases/download/v4.73_book/yaneura_book3.zip
    
    (なぜか curl -O ではダウンロード出来ないが、 wget では出来た… curl -OL とすれば良いんだ。)
    どれにしようかな。 例えば standard_book.zip には standard_book.db という定跡ファイルが入っている。これを使うには
    unzip standard_book.zip
    mv standard_book.db ~/yane-asobu/engine/yaneuraou2018/book
    
  6. では遊んでみます。
    cd ~/yane-asobu
    mono --arch=32 MyShogi.exe
    
    …負けました (当たり前だ)。クラシックな将棋につきあってくれて、 見たことない手を指してくれました。すごく面白かった。

以上、最初 HighSierra マシンでやって、 次に El Capitan マシンでやってみました。

yane
#!/bin/sh
cd ~/yane-asobu
mono --arch=32 MyShogi.exe
というスクリプト・ファイルを用意して、 実行許可属性をつけて、 PATH の通っているディレクトリィ (現象数理学科 Mac ならば ~/bin とか) におく。
実行許可属性をつけて ~/bin に移す
chmod +x yane
mv yane ~/bin
以下単に yane で遊べるようになる。


現在の将棋ソフトは、 色々な人が開発したエンジン、評価関数、 定跡ファイルがとっかえひっかえ使えるようで、 すごい時代になったものだ。

常日頃、オープンかつフリーなソフトウェアの恩恵を受けて、 色々仕事をしているわけだけれど (そういう生活が長いけれど)、 将棋ソフトもそうなったのは感慨深い。


将棋ファンとしては、古い将棋とか、 こういうソフトで検討すると色々なことが分かって楽しそうだ。 まあ、当分そういうことをする時間は作れそうにないけれど。


「将棋神 やねうら王」(これは Windows用) を買って、 そこから色々素材を持ってくると、カッコよくなるのかな。 アマゾンでポチりました。


(2018/11/25) 今はとっくの昔に使われなくなった定跡とかを検討させてみると、 色々意外なことを教えてくれます。目から鱗が多い。本当に面白いし、 うまく使うと上達のための良いツールになりそうです。 このインターフェイスは素晴らしい。

今日は竜王戦の観戦をしながら検討してみましたが、 こちらはとても複雑な心境になりました。 検討陣はソフト抜きでやっているのかなあ…

桂田 祐史
2020-04-05