mjaiむけに麻雀AIを開発したい(準備編)

mjaiという麻雀AI対戦サーバの仕組みがあるのでこれのAIを開発してみたい
gimite.net

とりあえず対戦サーバをインストールして動かすところまでは以下とかを見てできるのだが自分で新しいAIを作ってみようと思うとなかなか大変だったのでメモ
麻雀AI対戦サーバMjaiのインストール #Ruby - Qiita

方針

何事にも先達はあらまほしきことかなというのが持論なので誰かが作ったものを改造していきましょう。
本件gimiteさんの王道AIであるhttps://github.com/gimite/mjai-manueをベースにします。

  • ライブラリ取得

本体であるmjaiとmjai-manueをローカルにcloneしましょう。
https://github.com/gimite/mjai
https://github.com/gimite/mjai-manue

で、ここから動かすのが結構めんどかった。
まずわかりにくかった点としてmjai-manueはruby版とcoffee-script版がいる。ここに気づかなくて途中だいぶ意味不明であった。

coffee で動かす場合

coffeeで動かす場合。mjai-manue/coffee/README.txtにある通り

$ sudo npm install -g coffee-script
$ coffee main.coffee

とかで動かせる。

シャン点君3人と戦わせるとすると

mjai server --host=127.0.0.1 --port=11600 --game_type=tonnan --room=default --log_dir=./log "mjai-shanten mjsonp://127.0.0.1:11600/default" "mjai-shanten mjsonp://127.0.0.1:11600/default" "mjai-shanten mjsonp://127.0.0.1:11600/default"

でサーバ側を起動しておいて

coffee main.coffee mjsonp://127.0.0.1:11600/default

とかでよい。

ruby版を動かす場合

普通にGemとして起動してみましょとぱこーんと打つとうごかない

~/mjai-manue/bin$ ruby mjai-manue mjsonp://127.0.0.1:11600/default
Could not find compatible versions

Because every version of mjai depends on sass = 3.1.0
  and sass = 3.1.0 could not be found in locally installed gems,
  mjai cannot be used.
So, because Gemfile depends on mjai >= 0,
  version solving has failed.

ほほう。ライブラリがないのねーってことでgemsepc見ながら必要なものを追加するのですが、
gem install sass -v 3.1.0
gem install nokogiri -v 1.6.0
gem install bundler -v1.0.0
bundlerはデフォ扱いなのでダウングレードできないし、nokogiriは古いバージョンのビルドに失敗する。
ってことでgemspecのdependencyを書き換えてしまう。

  s.add_dependency("json", [">=1.6.0"])
  s.add_dependency("nokogiri", [">=1.6.0"])
  s.add_dependency("bundler", [">=1.0.0"])
  s.add_dependency("sass", [">=3.1.0"])

これで無事動くようになった。
ruby mjai-manue mjsonp://127.0.0.1:11600/default

はて、これでやっとそーすをいじれるようになったぞ!