Skip to content
Satoshi Kobayashi edited this page Sep 13, 2022 · 10 revisions

1戦分の対局記録を表すJSON形式データ

概要

東南戦、東風戦、一局戦を問わず順位が確定する単位で模打を記録する。 リーグ戦などのシリーズ対局も1戦ごとの牌譜を配列に収めることで表現できるが、その形式については規定しない。

形式

全体

{
    title:  "第十期 天鳳名人戦\n第一節 1卓(1)",
    player: [ "(≧▽≦)\n(天鳳位 R2242)",
              "Ⓟ木原浩一\n(新人 R1500)",
              "太くないお\n(天鳳位 R2224)",
              "Ⓟ小林剛\n(新人 R1500)" ],
    qijia:  0,
    log:    [ /* 対局情報 */ ],
    defen:  [ 9100, 23100, 36400, 51400 ],
    rank:   [ 4, 3, 2, 1 ],
    point:  [ "-90.9", "-6.9", "26.4", "71.4" ]    
}

title

牌譜のタイトル。改行を含めてもよい。改行を含む場合は1行目をリーグ戦名、2行目以降を節名や開催日などにすることを推奨する。

player

対局者情報。仮東から順に並べる。個々の対局者情報には改行を含めてもよい。改行を含む場合は1行目を個人を特定できる情報とし、2行目以降に段位や通算獲得ポイントなどの付加情報とすることを推奨する。

qijia

起家。0: 仮東、1: 仮南、2: 仮西、3: 仮北。仮東の概念のない対局では第一局の東家を仮東とし、qijia0 を設定すればよい。

log

対局情報。各局の局情報の配列。後述する。

defen

終了時の持ち点。仮東から順に並べる。

rank

着順。1: トップ ~ 4: ラス。仮東から順に並べる。

point

順位点を含めたポイント。小数点以下の桁数に意味がある場合もあるので文字列形式。仮東から順に並べる。

(追加属性)

このレベルには上記以外の追加の属性を加えることも可。例えば対局者をユニークに識別するためのIDや対局ルールの説明などを加えてもよい。

対局情報

[
    [ /* 局情報 */ ],
        /* ... */
    [ /* 局情報 */ ]
]

東一局からオーラスまでの各局の局情報の配列。局情報は以下で説明。

局情報

[
    { /* 模打情報 */ },
        /* ... */
    { /* 模打情報 */ }
]

配牌から和了あるいは流局までの模打情報の配列。各模打情報は以下で説明。

配牌

{ qipai: {
    zhuangfeng: 0,
    jushu:      0,
    changbang:  0,
    lizhibang:  0,
    defen:      [ 30000, 30000, 30000, 30000 ],
    baopai:     "s5",
    shoupai:    [ "m478p33089s6z1257",
                  "m19p1389s1299z255",
                  "m67p68s1346789z17",
                  "m14689p377s07z346"  ]
} }

zhuangfeng

場風。(0: 東、1: 南、2: 西、3: 北)

jushu

局数。(0: 一局、1: 二局、2: 三局、3: 四局)

changbang

本場。

lizhibang

その局開始時の供託リーチ棒の数。

defen

その局開始時の対局者の持ち点。その局の東家から順に並べる。

baopai

ドラ表示

shoupai

配牌の 牌姿。その局の東家から順に並べる。

自摸

{ zimo: { l: 0, p: "m4" } }

l

手番。(0: 東家、1: 南家、2: 西家、3: 北家)

p

ツモった

打牌

{ dapai: { l: 1, p: "z2*" } }

l

手番。(0: 東家、1: 南家、2: 西家、3: 北家)

p

切った

副露

{ fulou: { l: 0, m: "m567-" } }

l

手番。(0: 東家、1: 南家、2: 西家、3: 北家)

m

副露した 面子

{ gang: { l: 1, m: "z222-2" } }

l

手番。(0: 東家、1: 南家、2: 西家、3: 北家)

m

槓した 面子。大明槓は副露として扱うので、ここでの槓は暗槓もしくは加槓。

槓自摸

{ gangzimo: { l: 1, p: "m9" } }

l

手番。(0: 東家、1: 南家、2: 西家、3: 北家)

p

ツモった

開槓

{ kaigang: { baopai: "p7" } }

baopai

槓ドラ表示

和了

{ hule: {
    l:          1,
    shoupai:    "m234p35s123789z33p4*",
    baojia:     null,
    fubaopai:   [ "s9" ],
    fu:         40,
    fanshu:     3,
    defen:      5200,
    hupai:      [ { name: "立直", fanshu: 1 },
                  { name: "門前清自模和", fanshu: 1 },
                  { name: "裏ドラ", fanshu: 1 } ],
    fenpei:     [ -2000, 4000, -1000, -1000 ]
} }

以下は役満の場合。

{ hule: {
    l:          2,
    shoupai:    "p7p7,z111-,z222=,z333+,z444-",
    baojia:     3,
    fubaopai:   null,
    damanguan:  2,
    defen:      64000,
    hupai:      [ { name: "大四喜", fanshu: "**", baojia: 0 } ],
    fenpei:     [ -32000, 0, 64000, -32000 ]
} }

ダブロンがあった場合はこの要素が連続する。

l

和了者。(0: 東家、1: 南家、2: 西家、3: 北家)

shoupai

和了者の 牌姿。ロン和了の場合は和了牌をツモした牌姿にする。

baojia

放銃者。ツモ和了の場合は null。

fubaopai

裏ドラ表示の配列。リーチでない場合は null。

fu

符。役満の場合は undefined。

fanshu

翻数。役満の場合は undefined。

damanguan

役満複合数。複合には四暗刻をダブル役満にする類のものと、大三元と字一色の複合のような役の複合のケースがある。役満でない場合は undefined。

defen

和了打点。供託収入は含まない。

hupai

和了役の配列。それぞれの要素には役名を示す name と翻数を示す fanshu がある。役満の場合 fanshu は数字ではなく、和了役それぞれの役満複合数分の * となる。また役満のパオがあった場合は baojia に責任者を設定する。 役名は任意の文字列なので、ローカル役の採用も可能。

fenpei

供託を含めたその局の点数の収支。その局の東家から順に並べる。リーチ宣言による1000点減は収支に含めない。

流局

{ pingju: {
    name:       "荒牌平局",
    shoupai:    [ "",
                  "p2234406z333555",
                  "",
                  "p11223346777z77" ],
    fenpei:     [ -1500, 1500, -1500, 1500 ]
} }

name

流局理由。

shoupai

流局時の手牌。その局の東家から順に並べる。ノーテンなどの理由により手牌を開示しなかった場合は空文字列とする。

fenpei

ノーテン罰符などその局の点数の収支。その局の東家から順に並べる。リーチ宣言による1000点減は収支に含めない。