0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

天鳳牌譜mjlogログの補足

0
Last updated at Posted at 2026-09-13

はじめに

天鳳牌譜mjlog(天鳳ログ)での牌番号・副露面子

天鳳牌譜mjlogログ(天鳳ログ)では、牌番号や副露面子の扱いが複雑であるために、以下それらの変数について補足として記述します。


牌番号

牌番号_概要

mjlogでは、136枚の牌に0から135までの一意の番号が設定されています。
そのために、同じ一萬の場合では別の牌として処理されます。
例えば、一萬の場合は0から3まで、二萬の場合は4から7までの値が設定されています。

牌番号_一覧

牌 番号 牌 番号
一萬 0,1,2,3 一索 72,73,74,75
二萬 4,5,6,7 二索 76,77,78,79
三萬 8,9,19,11 三索 80,81,82,83
四萬 12,13,14,15 四索 84,85,86,87
五萬 16,17,18,19 五索 88,89,90,91
六萬 20,21,22,23 六索 92,93,94,95
七萬 24,25,26,27 七索 96,97,98,99
八萬 28,29,30,31 八索 100,101,102,103
九萬 32,33,34,35 九索 104,105,106,107
一筒 36,37,38,39 東 108,109,110,111
二筒 40,41,42,43 南 112,113,114,115
三筒 44,45,46,47 西 116,117,118,119
四筒 48,49,50,51 北 120,121,122,123
五筒 52,53,54,55 白 124,133,134,135
六筒 56,57,58,59 発 128,129,130,131
七筒 60,61,62,63 中 132,133,134,135
八筒 64,65,66,67 - -
九筒 68,69,70,71 - -

牌番号_赤牌

赤一枚の場合、同じ牌の中で番号が一番小さい牌番号(mod4で0となる牌)が設定されます。
赤一枚の五萬、五筒、五索の場合は、以下の番号が設定されています。

赤牌 番号
赤五萬(一枚の場合) 16
赤五筒(一枚の場合) 52
赤五索(一枚の場合) 88

副露(鳴き)

副露に関する変数

天鳳牌譜mjlog形式では、副露(鳴き)が行われた場合には以下の形式で情報が格納されます。

<N who="2" m="42059" />
変数 概要
N 鳴いた相手の席番号
m 副露面子コード

副露面子コード

副露面子コードとは、副露面子の状態を表す16ビットのビットフィールドを10進数の整数に変換した値となります。
16ビットのビットフィールドのそれぞれの意味は以下に記載します。

副露面子コード_副露面子の種別

16ビットのビットフィールドの以下フラグで、副露面子の種別を決定しています。

種別 フラグ
順子フラグ 3ビット目が1の場合
刻子フラグ 4ビット目が1の場合
加槓フラグ 5ビット目が1の場合
北抜きフラグ 6ビット目が1の場合
暗槓・大明槓 3-6ビットが全て0の場合

副露面子コード_牌添字

mjlogでは、4枚の一萬も異なる牌として処理されます。
副露面子コードでは、4枚の牌を区別するために「牌添字」が定義されいてます。
牌添字は、"[牌番号] mod 4"の値を計算して、計算結果の値を設定しています。

副露面子コード_元コード

tehai.js
副露面子のビットフィールド


副露面子種別ごとの副露面子コード

副露面子コード_順子

順子の場合の16ビットのビットフィールドは以下となります。

ビット 概要 説明
1-2 鳴いた相手 鳴いた相手を表す。相手は上家になるので、値は必ず3になる
3 順子フラグ 順子フラグを表す。値は必ず1になる
4-5 牌添字1 最小の牌番号の牌添字
6-7 牌添字2 二番目に大きい(真ん中の)牌番号の牌添字
8-9 牌添字3 最大の牌番号の牌添字
10 (未使用) -
11-16 順子の牌パターン番号 順子の構成を表す牌パターン番号が設定される

副露面子コード_順子の牌パターン番号

牌パターン 番号 牌パターン 番号
一萬二萬三萬 0,1,2 一索二索三索 42,43,44
二萬三萬四萬 3,4,5 二索三索四索 45,46,47
三萬四萬五萬 6,7,8 三索四索五索 48,49,50
四萬五萬六萬 9,10,11 四索五索六索 51,52,53
五萬六萬七萬 12,13,14 五索六索七索 54,55,56
六萬七萬八萬 15,16,17 六索七索八索 57,58,59
七萬八萬九萬 18,19,20 七索八索九索 60,61,62
一筒二筒三萬 21,22,23 - -
二筒三筒四萬 24,25,26 - -
三筒四筒五萬 27,28,29 - -
四筒五筒六萬 30,31,32 - -
五筒六筒七萬 33,34,35 - -
六筒七筒八萬 36,37,38 - -
七筒八筒九萬 39,40,41 - -

(補足説明)
牌パターンが「一萬二萬三萬」の場合に、牌パターン番号は「0,1,2」のいずれかの値が設定されます。
牌パターン番号から、以下鳴かれている牌を算出することができます。

牌パターン番号 状態
0 一萬二萬三萬の面子状態で一萬が鳴かれている場合
1 一萬二萬三萬の面子状態で二萬が鳴かれている場合
2 一萬二萬三萬の面子状態で三萬が鳴かれている場合

副露面子コード_刻子・加槓

刻子・加槓の場合の16ビットのビットフィールドは以下となります。

ビット 概要 説明
1-2 鳴いた相手 鳴いた相手を表す
(下家:1, 対面:2, 上家:3, 暗槓・加槓:0)
3 順子フラグ 値は必ず0になる
4 刻子フラグ 刻子フラグを表す。刻子の場合には値が1になる
5 加槓フラグ 加槓フラグを表す。加槓の場合には値が1になる
6-7 刻子未使用牌の牌添字 刻子に含まれない牌の牌添字
ポンの場合は使用していない牌の牌添字
加槓の場合は加槓で加えた牌の牌添字
8-9 (未使用) -
10-16 刻子の牌パターン番号 刻子の構成を表す牌パターン番号が設定される

副露面子コード_刻子・加槓の牌パターン番号

牌パターン 番号 牌パターン 番号
一萬一萬一萬 0,1,2 一索一索一索 54,55,56
二萬二萬二萬 3,4,5 二索二索二索 57,58,59
三萬三萬三萬 6,7,8 三索三索三索 60,61,62
四萬四萬四萬 9,10,11 四索四索四索 63,64,65
五萬五萬五萬 12,13,14 五索五索五索 66,67,68
六萬六萬六萬 15,16,17 六索六索六索 69,70,71
七萬七萬七萬 18,19,20 七索七索七索 72,73,74
八萬八萬八萬 21,22,23 八索八索八索 75,76,77
九萬九萬九萬 24,25,26 九索九索九索 78,79,80
一筒一筒一筒 27,28,29 東東東 81,82,83
二筒二筒二筒 30,31,32 南南南 84,85,86
三筒三筒三筒 33,34,35 西西西 87,88,80
四筒四筒四筒 36,37,38 北北北 90,91,92
五筒五筒五筒 39,40,41 白白白 93,94,96
六筒六筒六筒 42,43,44 発発発 96,97,98
七筒七筒七筒 45,46,47 中中中 99,100,101
八筒八筒八筒 48,49,50 - -
九筒九筒九筒 51,52,53 - -

(補足説明)
牌パターンが「一萬一萬一萬」の場合に、牌パターン番号は「0,1,2」のいずれかの値が設定されます。
未使用牌を除いて昇順に並べたとして、牌パターン番号から以下鳴かれている牌を算出することができます。

牌パターン番号 状態
0 一萬を未使用牌を除いて昇順に並べて、最小の牌番号が鳴かれた場合
1 一萬を未使用牌を除いて昇順に並べて、二番目に大きい(真ん中の)牌番号が鳴かれた場合
2 一萬を未使用牌を除いて昇順に並べて、最大の牌番号が鳴かれた場合

副露面子コード_暗槓・大明槓

暗槓・大明槓の場合の16ビットのビットフィールドは以下となります。

ビット 概要 説明
1-2 鳴いた相手 鳴いた相手を表す
(下家:1, 対面:2, 上家:3, 暗槓・加槓:0)
3 順子フラグ 値は必ず0になる
4 刻子フラグ 値は必ず0になる
5 加槓フラグ 値は必ず0になる
6 北抜きフラグ 値は必ず0になる
7-8 (未使用) -
9-16 刻子の牌パターン番号 槓子の構成を表す牌パターン番号が設定される

副露面子コード_暗槓・大明槓の牌パターン番号

牌パターン 番号 牌パターン 番号
一萬一萬一萬一萬 0,1,2,3 一索一索一索一索 72,73,74,75
二萬二萬二萬二萬 4,5,6,7 二索二索二索二索 76,77,78,79
三萬三萬三萬三萬 8,9,19,11 三索三索三索三索 80,81,82,83
四萬四萬四萬四萬 12,13,14,15 四索四索四索四索 84,85,86,87
五萬五萬五萬五萬 16,17,18,19 五索五索五索五索 88,89,90,91
六萬六萬六萬六萬 20,21,22,23 六索六索六索六索 92,93,94,95
七萬七萬七萬七萬 24,25,26,27 七索七索七索七索 96,97,98,99
八萬八萬八萬八萬 28,29,30,31 八索八索八索八索 100,101,102,103
九萬九萬九萬九萬 32,33,34,35 九索九索九索九索 104,105,106,107
一筒一筒一筒一筒 36,37,38,39 東東東東 108,109,110,111
二筒二筒二筒二筒 40,41,42,43 南南南南 112,113,114,115
三筒三筒三筒三筒 44,45,46,47 西西西西 116,117,118,119
四筒四筒四筒四筒 48,49,50,51 北北北北 120,121,122,123
五筒五筒五筒五筒 52,53,54,55 白白白白 124,133,134,135
六筒六筒六筒六筒 56,57,58,59 発発発発 128,129,130,131
七筒七筒七筒七筒 60,61,62,63 中中中中 132,133,134,135
八筒八筒八筒八筒 64,65,66,67 - -
九筒九筒九筒九筒 68,69,70,71 - -

(補足説明)
牌パターンが「一萬一萬一萬一萬」の場合に、牌パターン番号は「0,1,2,3」のいずれかの値が設定されます。
牌番号を昇順に並べたとして、牌パターン番号から以下鳴かれている牌を算出することができます。

牌パターン番号 状態
0 牌番号を昇順に並べて、最小の牌番号が鳴かれた場合
1 牌番号を昇順に並べて、二番目に大きい牌番号が鳴かれた場合
2 牌番号を昇順に並べて、三番目に大きい牌番号が鳴かれた場合
3 牌番号を昇順に並べて、最大の牌番号が鳴かれた場合

参考情報

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?