[[FrontPage]] #contents 麻雀AI同士を対戦させることができるサーバです。 * 試してみる [#ve19e862] - [[Ruby:http://www.ruby-lang.org/ja/]]をインストール。 - [[RubyGems:https://rubygems.org/]]をインストール。 $ sudo gem install json $ wget https://raw.github.com/gimite/mjai/master/samples/tsumogiri_player.rb $ ruby tsumogiri_player.rb mjsonp://gimite.net:11600/manue-1kyoku ここで指定したサーバでは、[[Manue:https://github.com/gimite/mjai-manue]]という開発中のAI(現状あまり強くない) 3人を相手に1局戦ができます。 テストにご自由にお使いください。途中で切っても大丈夫です。 http://gimite.net/mjai/log/ にログが出力されます。サーバが落ちていたらGimiteに教えて下さい。 * プロトコル [#g9117e2b] サーバ、クライアントが交互にJSONを1行ずつ送り合います。ドキュメントはまだありません。 - [[sample3:http://gimite.net/mjai/samples/sample3.protocol.txt]] ([[雀譜プレーヤ:http://gimite.net/mjai/samples/sample3.mjson.html]]) - [[sample4:http://gimite.net/mjai/samples/sample4.protocol.txt]] ([[雀譜プレーヤ:http://gimite.net/mjai/samples/sample4.mjson.html]]) あたりのサンプルを見ればだいたい分かる…かもしれません。分からなかったらGimiteを捕まえて聞いてください。 * 自分でサーバを動かすには [#pfa7b8f2] - [[Ruby:http://www.ruby-lang.org/ja/]]をインストール。 - [[RubyGems:https://rubygems.org/]]をインストール。 $ sudo gem install mjai mjai-manue $ mjai server --port=11600 --game_type=one_kyoku --room=default --log_dir=./log - 4人がポート11600に接続して {"type":"join","name":"xxxx","room":"default"} を送ると開始します。 または、 $ mjai server --port=11600 --game_type=one_kyoku --room=default --log_dir=./log \ mjai-manue ./my-ai1.sh ./my-ai2.sh ./my-ai3.sh とすると内部で $ ./my-ai1.sh mjsonp://localhost:11600/default などが実行されます。 * ルール [#v9c4e39a] 天鳳の喰い断あり赤ありルール互換になる…予定です。現状色々未実装なルールがあります。 * 雀譜プレーヤ [#s88246bc] $ mjai convert 2012-04-30-215246.mjson 2012-04-30-215246.html などとすることで、ログをHTML形式の雀譜ビューアに変換できます。今のところたぶんChromeでしか動きません。 * 安定度について [#dd8c411b] プロトコルはあまりいじらないつもりですが、問題を見つけたら大きく変わる可能性もあります。RubyでAIを書く場合はmjai内のクラスを使うと便利かもしれませんが、Rubyのクラス構成やインタフェースはガンガン変わります。 * 天鳳のログの解析 [#x1a1dc4b] [[天鳳の強い人2人の全牌譜:http://blog.tenhou.net/article/46797689.html]]が公開されています。天鳳のログ(.mjlog)はmjai convertで.mjsonに変換できます。また、Mjai::Archiveクラスで読めます。