kobalab / Majiang

HTML5 + JavaScript で動作する麻雀アプリ「電脳麻将」
https://kobalab.net/majiang/
MIT License
605 stars 168 forks source link

機能追加リクエスト: 牌譜の天鳳牌譜エディタの形式での表示・保存 #118

Closed Apricot-S closed 3 weeks ago

Apricot-S commented 3 weeks ago

概要

電脳麻将の牌譜を牌譜解析サービス (NAGA, Mahjong AI Utilities) で解析したいと考えています。

解析サービスに入力するため、牌譜を天鳳の牌譜エディタ (https://tenhou.net/6/) で使用されている JSON 形式で表示・保存する機能を追加していただけますでしょうか?

類似事例

CityLogs (https://rc.honk.li/)

麻雀一番街の牌譜を前述のサービス向けに変換できるサイト

変換例:

CityLogs

解析サービスの牌譜形式

NAGA

牌譜入力部: カスタム牌譜解析_コピペ用

牌譜の例: output_viewer.example.txt

Mahjong AI Utilities

牌譜入力部: MJAI解析

牌譜の例: output_log.example.json

Apricot-S commented 3 weeks ago

電脳麻将形式の牌譜を天鳳形式 (tenhou.net/6 JSON) に変換するツールは作成しました。ご参考までに。

https://github.com/Apricot-S/majiang-log

kobalab commented 3 weeks ago

牌譜エディタを実装したことでこの問題に興味が湧いていたところです。検討したいと思います。

NAGA解析等は使ったことがないのでよくわかっていないのですが、出力はダウンロードよりコピペできるテキスト形式(textareaで表示など)の方が使い勝手がよいでしょうか?

それと出力形式は各局ごとがよいでしょうか?それとも全局まとめた方がよいですか?

Apricot-S commented 3 weeks ago

NAGA解析等は使ったことがないのでよくわかっていないのですが、出力はダウンロードよりコピペできるテキスト形式(textareaで表示など)の方が使い勝手がよいでしょうか?

コピペできるテキスト形式の方が使いやすいと思います。 ダウンロードしても結局ファイルを開いてコピペが必要です。

また、コピーボタンがあればさらに使いやすいと思います。

それと出力形式は各局ごとがよいでしょうか?それとも全局まとめた方がよいですか?

全局まとめて出力でよいと思います。

出力形式に関しては類似事例としてあげた CityLogs (https://rc.honk.li/) が参考になると思います。 動作確認用に段位戦銀河卓四人半荘戦の牌譜 URL を 1 つ提供します。 「Riichi City log ID」の下のところに牌譜 URL (下記の文字列) を入れて「Submit」を押すと解析サービス向けに変換されたテキストが表示されます。

cl3cu4uai08c5027201g

kobalab commented 3 weeks ago

ver.2.4.2 に天鳳のJSON形式の牌譜データを出力する機能を追加しました。

Apricot-S commented 3 weeks ago

ご対応ありがとうございます。 早速試したのですが、和了時にバグがあります。

和了時に包がないときも起家に「パオ」の表示が出ます。 スクリーンショット 2024-11-02 225527

おそらく、包がないときは包責者に和了者を指定する必要がありますが、0 が設定されていることが原因と思われます。

https://github.com/kobalab/tenhou-url-log/blob/9e4e8b9469bae990e409124bdf876222c0538a85/lib/logconv.js#L83-L91

参考: 該当部分の majiang-log での実装

https://github.com/Apricot-S/majiang-log/blob/aa3cbb4c94a319c099c8e1f5190c0a47b2f59fba/src/lib/hule.ts#L225

Apricot-S commented 3 weeks ago

ロンの場合でも、包がないときは包責者に和了者を指定する必要があります。 包責者に放銃者を指定すると添付画像のようになります。

スクリーンショット 2024-11-02 231312

kobalab commented 3 weeks ago

すいません。確認不足でした。 ですが、なぜか私の環境では再現しないのです。発生するのは https://tenhou.net/5/ のビューアでしょうか? (発生させないことには修正確認もできず困っています)

kobalab commented 3 weeks ago

分かりました! https://tenhou.net/6/ を経由して牌譜を再生させると再現しませんね。電脳麻将の出力の /6/ を /5/ に書き換えたら再現しました。こんな罠が……

kobalab commented 3 weeks ago

修正し、ver.2.4.3 としてリリースしました。

電脳麻将の牌譜エディタが明確にパオを指定する方法を持っておらず(点数の移動だけで表す)、パオなしのルールにも対応している現状の仕様からはパオ対象を特定することができないため、「パオ」と表示させないために一律和了者を設定する修正としました。

Apricot-S commented 3 weeks ago

早速の対応ありがとうございます。 パオ発生時のパオ責任者の指定に関しては修正予定はありますか? もしくは今後別の Issue を立てますか?

修正予定なし or 別 Issue を立てるのであれば本 Issue は close します。

kobalab commented 3 weeks ago

確認ありがとうございます。 パオ責任者に関して修正は考えていません。 問題なければクローズしていただければと思います。

Apricot-S commented 3 weeks ago

パオに関しては

なので、どうしても修正したければ手動で修正しても問題ないと考えています。 そのため、牌譜エディタでサポートしない方針であればそれでよいと思います。

最後に、この度はリクエストに応えていただきありがとうございました!