[1.]概要
[1-1.]目的
麻雀AI対戦サーバ「Mjai」をインストールする手順をまとめます。
[1-2.]「Mjai:麻雀AI対戦サーバ」とは
「Mjai:麻雀AI対戦サーバ」(以下mjai)とは、麻雀AI同士で対戦することができるrubyベースのアプリケーションです。
詳細はMjai 麻雀AI対戦サーバにて公開されています。
[1-3.]実行環境
下記で環境で動作させます
- ディストリビューション
- Linux Mint 21.2 Victoria Xfce(64-bit)
- ソフトウェア
- ruby 3.0.2p107
- IPアドレス
- 192.168.xx.yy
- ホスト名
- <任意の名前>で設定可能
[2.]debパッケージ導入
[2-1.]ログイン
一般ユーザでログインする
[2-2.]必要パッケージのインストール
rubyなど必要なパッケージをインストールする。
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:2 http://packages.linuxmint.com victoria InRelease
Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
(略)
Fetched 11.3 MB in 15s (761 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
327 packages can be upgraded. Run 'apt list --upgradable' to see them.
$ sudo apt-get install -y ruby ruby-dev build-essential zlib1g-dev libssl-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
(略)
[2-3.]rubyの動作確認
rubyの利用が可能であるかの確認を行う。
$ ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
[2-4.]gemの動作確認
gemの利用が可能であるかの確認を行う。
$ gem -v
3.3.5
[3.]mjaiインストール
[3-1.]mjaiインストール
gemを利用して、mjaiをインストールする。
$ sudo gem install mjai
[sudo] password for xxx:
Successfully installed mjai-0.0.7
Parsing documentation for mjai-0.0.7
Done installing documentation for mjai after 4 seconds
1 gem installed
[3-2.]ログディレクトリの作成
ログディレクトリを作成する。
$ mkdir log
[4.]mjaiの起動(評価用4人同時プレイ)
[4-1.]mjaiを起動する
4人同時接続で、mjaiを起動する。
$ mjai server --host=192.168.xx.yy --port=11600 --game_type=one_kyoku --room=default --log_dir=./log "mjai-shanten mjsonp://192.168.xx.yy:11600/default" "mjai-shanten mjsonp://192.168.xx.yy:11600/default" "mjai-shanten mjsonp://192.168.xx.yy:11600/default" "mjai-shanten mjsonp://192.168.xx.yy:11600/default"
[5.]mjaiの起動(外部クライアント向け3人起動:サーバ側の起動方法)
[5-1.]リモート環境から実行する準備を行う
ネットワーク疎通ができる環境であれば、mjai起動時に外部クライアントからの接続も可能となる。
[5-2.]サーバとしてmjaiを起動する
3人同時接続で、mjaiを起動する。
・一局戦
$ mjai server --host=192.168.xx.yy --port=11600 --game_type=one_kyoku --room=default --log_dir=./log "mjai-shanten mjsonp://192.168.xx.yy:11600/default" "mjai-shanten mjsonp://192.168.xx.yy:11600/default" "mjai-shanten mjsonp://192.168.xx.yy:11600/default"
・東南戦
$ mjai server --host=192.168.xx.yy --port=11600 --game_type=tonnan --room=default --log_dir=./log "mjai-shanten mjsonp://192.168.xx.yy:11600/default" "mjai-shanten mjsonp://192.168.xx.yy:11600/default" "mjai-shanten mjsonp://192.168.xx.yy:11600/default"
[6.]mjaiの起動(外部クライアント向け3人起動:クライアント側の起動方法)
[6-1.]クライアントからmjaiサーバに接続する###
以下からサンプルスクリプトをダウンロードする。
$ get https://raw.githubusercontent.com/gimite/mjai/master/samples/tsumogiri_player.rb
- サンプルスクリプト入手先
[6-2.]別ターミナルを起動する
別のターミナルを起動する。
[6-3.]クライアントからmjaiサーバに接続する
別ターミナルから下記コマンドを実行する。
ruby ./tsumogiri_player.rb mjsonp://192.168.xx.yy:11600/default
上記コマンドでサーバ側と連動してクライアントの処理が開始されます。
[7.]コマンド一覧
[7-1.]ヘルプ表示
-hでヘルプ表示。コマンドの一覧が表示される。
$ mjai -h
Basic Usage:
/usr/local/bin/mjai server --port=PORT
/usr/local/bin/mjai server --port=PORT [PLAYER1_COMMAND] [PLAYER2_COMMAND] [...]
/usr/local/bin/mjai stats 1.mjson [2.mjson] [...]
/usr/local/bin/mjai convert hoge.mjson hoge.html
/usr/local/bin/mjai convert hoge.mjlog hoge.mjson
Complete usage:
/usr/local/bin/mjai server \
--host=IP_ADDRESS \
--port=PORT \
--room=ROOM_NAME \
--game_type={one_kyoku|tonpu|tonnan} \
--games={NUM_GAMES|infinite} \
--log_dir=LOG_DIR_PATH \
[PLAYER1_COMMAND] [PLAYER2_COMMAND] [...]
See here for details:
http://gimite.net/pukiwiki/index.php?Mjai%20%CB%E3%BF%FDAI%C2%D0%C0%EF%A5%B5%A1%BC%A5%D0
[8.]最後に
[8-1.]最後に
麻雀プログラムを行う上で皆様のご参考になればと思います。