{"repo":"penta2019/mahjong_server","free":true,"listed":false,"github":"https://github.com/penta2019/mahjong_server","clone":"git clone https://github.com/penta2019/mahjong_server.git","description":"日本リーチ麻雀のゲームサーバー","language":"Rust","stars":20,"topics":["mahjong","rust","bot"],"license":"MIT","category":"workflow-automation","readme_excerpt":"Mahjong Server (WIP) 概要 日本リーチ麻雀のゲームサーバーです. 主にBot同士を対戦させることを目的にしています. Botは未実装で麻雀ゲームエンジンとGUIの動作確認のみができる状態です. 類似プロジェクト: Mjai(https://github.com/gimite/mjai) 主な機能 麻雀エンジン 配牌, 鳴き, リーチ・聴牌・和了の判定, 符・役・得点の計算などゲーム進行に必要な要素すべて Bot同士の対戦 実用的なBot(あるいはAI)は含まれていません GUI (対戦, 観戦, 牌譜) ※現在 実装&改善中 未実装機能 3人麻雀 実装するかも ローカルルール, ローカル役 実装予定なし. 動作要件 動作環境: デスクトップPC (Linux, Windows, MacOS) Rust言語 (rustc 1.91.0で動作確認) 動作確認済み環境: Linux 6.17.5-2 (CachyOS) 牌の文字列表現 一般的な1m(一萬)ではなく,前後を反転したm1で表現します. 萬子: m1, m2, m3, m4, m0(赤5), m5, m6, m7, m8, m9 筒子: p1, p2, p3, p4, p0(赤5), p5, p6, p7, p8, p9 索子: s1, s2, s3, s4, s0(赤5), s5, s6, s7, s8, s9 字牌: z1(東), z2(南), z3(西), z4(北), z5(白), z6(發) ,z7(中) 使い方 Rustのビルド環境をインストールしてコマンドを実行してください. 依存ライブラリはコマンドの初回実行時にcargoが自動的にダウンロードします. ビルドオプション Releaseモードでのビルド&実行. 正しく動けばバージョン情報が表示されます. GUI(Bevy)を使用しない場合は--no-default-featuresでビルド時間を大幅に削減できます. 実行 cargoコマンド(cargo run --release --)の後にアプリ自体の引数を指定して実行します. 手役計算を行う例 --release の後ろの -- は以降の引数がアプリ自体に渡される引数であることを示すものです. 対戦モード (E) 共通オプション一覧 シングル実行 単一の試合を実行します. 固有オプション一覧 実行例 七対子Bot同士の対戦をGuiから0.3秒の停止時間をつけて観戦 座席0をコンソールから手動で操作.その他は七対子Bot 座席3(北家開始)をGUIから操作.その他は七対子Bot 座席0をGuiで操作(牌山&手牌表示可). その他はNop(ツモ切り). Guiデバッグ用 マルチプル実行 複数の試合を実行して結果を集計します. このモードは主にBotのベンチマークを行うためのもので,入出力を行うActor(=Gui, Manual, MjaiEndpoint等)は使用できません. 各actorの座席はそれぞれの試合開始時にランダムで決定されます. 固有オプション一覧 実行例 座席0はランダム打牌.その他は七対子Bot.1000半荘を32スレッドで実行した結果を集計. 試合の再現 それぞれの試合のシード値と結果が出力されるため,内容が気になった局があればシード値をコピーして試合内容を再現することができます. これを可能にするためActor(Botまたはプレイヤーインターフェースのエンドポイント)は決定的な実装(同じシード値と卓状態に対して必ず同じ選択を行う)で","default_branch":null,"files":null,"tree":[],"storefront":"/r/penta2019","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/penta2019/mahjong_server/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}