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
はて、これでやっとそーすをいじれるようになったぞ!