【MPSZ拡張表記案】麻雀のMPSZ表記の拡張を考えてみる

はじめに

麻雀の牌の表記法には、採譜表記(一~九①~⑨1~9TN西北白R中)や、MPSZ表記(1~9m, 1~9p, 1~7z)があります。
しかし、いずれも副露や河を表す方法に決められたフォーマットがなく、括弧書きなどで対応してきました。

SNSなどで表記する分には問題ないのですが、プログラマーとしては、

  • 共通のフォーマットがあったほうが、みんなが使える麻雀のツールを作りやすい

  • できるだけ解析しやすく、共有しやすいフォーマットだと嬉しい

  • なんとなく読める、簡単に書けるようにしたい

という要望があります。

そこで、既存のMPSZ表記を拡張して、副露や河を表せるようにしてみたのが今回の提案になります。

手牌

表記

牌の種類については、

  • 萬子は m

  • 筒子は p

  • 索子は s

  • 字牌は z

  • 裏向きの牌(説明用のなんでもいい牌など)は x

牌の番号については、

  • 萬子筒子索子はそのまま 1~9

  • 赤ドラは 0

  • 字牌は東南西北白發中の順に 1~7

  • 裏向きの牌(説明用のなんでもいい牌など)は 任意の数字

牌の種類の表記については、

  • 同じ種類の牌が連続する場合、最後の牌以外の牌の種類を省略してもよい

  • ツモやロンの牌は、牌の種類を省略しないで最後につける(3456sに3sツモの時は3456s3s)

として表現します。

また、見やすさのために牌の種類の後は空白を挟んでもよいこととします。

萬子: 1m, 123m
筒子: 2p, 555p
索子: 3s, 444s
赤ドラ: 0m, 0p, 0s
字牌: 1z, 222z
裏向きの牌(説明用のなんでもいい牌など): 0x, 0011x
複合: 2245m345p345s111z 5z
複合(相手が發となにかのシャボ待ちっぽいとき): 00x66z

副露

表記

副露は手牌表記と記号を組み合わせて表現します。
副露の種類については、

  • チー・ポン・大明カンは -の記号 (鳴いた牌が手牌に足りてなかったイメージ)

  • 加カンは =の記号 (ポンに一本プラスのイメージ)

  • 暗カンは +の記号 (打点が上がるイメージ)

副露でどこから鳴いたかについては、

  • 上家から鳴いたなら1つ目の数字の後に記号

  • 対面から鳴いたなら2つ目の数字の後に記号

  • 下家から鳴いたなら3つ目の数字の後に記号

  • 暗カンなら4つ目の数字の後に記号

鳴いた牌については、

  • 記号がついた数字が他家から鳴いた牌

  • 加カン暗カンのときは、最後の数字が最後にツモってきた牌

として表現します。

チー: 2-13m
ポン: 55-5p
大明カン: 444-4s
加カン: 55=50p
暗カン: 1111+z
複合: 2245m5z 4-35s 0-34p 11=11z

表記

河は手牌表記と記号を組み合わせて表現します。
牌の状態については、

  • ツモ切りは =の記号 (カタカナのツの点々が2つのイメージ)

  • リーチは +の記号 (打点が上がるイメージ)

  • 他家の副露で河から抜けた牌は -の記号 (牌が抜けてるイメージ)

記号の表記については、

  • 数字の後に記号をつける

  • 複合する場合は、記号を続けてつける

として表現します。

ツモ切り: 3=m
リーチ: 5+p
他家の副露で河から抜けた牌: 4-s
複合: 1=p3z5-s0+-m4=m1=z 5=-z7=p8=m

実際に使ってみたサンプル

ドラ表示牌: 0p
手牌: 22256p55s6z 6-57m 111-z
河: 4z2z1s9m2=m5=z 3=z7s8=m7m

ドラ表示牌: 2p
手牌: 23468p11345678s 2z
河: 4z1=m7+-m3=s

河の表記がごちゃごちゃしてるのは気になりますが、画像から文字列に起こすのはそれほど難しくありません。
事前知識なしでもギリギリ「ポンっぽい」や「ツモ切りっぽい」ということは伝わりそうかなと思います。

おわりに

もし改善案や想定しきれていないケースなどありましたら、コメントかTwitterでもらえると嬉しいです!

今後自分が麻雀のツールを作るときは、今回提案した表記法をもとに実装をしようと思っています。
みんなが楽しく麻雀をできるように、便利なツールを考えていきたいと思っているので、もしよかったら応援してもらえると嬉しいです!

この記事が気に入ったらサポートをしてみませんか?