LoginSignup
1
0

麻雀AI対戦サーバMjaiのインストール

Last updated at Posted at 2024-02-04

[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.]最後に

麻雀プログラムを行う上で皆様のご参考になればと思います。

[8-2.]参考情報

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0