FujiGokoro UECda 試合棋譜 v1.0 - YuriCat/FujiGokoroUECda GitHub Wiki

FujiGokoro UECda 試合棋譜 v1.0 読み方

ファイル名 テキストファイルだが拡張子 .dat としている

<棋譜の内容>

player   プレーヤー名 プレーヤー番号順 サーバーのみ知ることができる

/* ~ */   1試合

game   試合番号 0 ~ 試合数 - 1 プレーヤー番号を固定した連続対戦であることを保証

score   累計得点を書きたかったが、現時点では空欄

class   階級 0(大富豪) ~ 4(大貧民) プレーヤー番号順

seat   座席 0 ~ 4 プレーヤー番号順 (各座席のプレーヤー番号ではなく、各プレーヤーの座席番号なので注意)

dealt   初期配布手札 プレーヤー番号順 試合では大富豪, 富豪は献上札を追加した状態で受け取るので正確に知ることができない情報

changed   カード交換で渡した手札 プレーヤー番号順

original   交換終了後の手札 プレーヤー番号順

play   役提出履歴 プレーヤー番号等の付加情報はなく、公式ルール通りに試合が進行することを仮定する

result   試合順位 プレーヤー番号順 ルール上、千日手でランダムに順位決定されることもありうる

<カード集合の見方>  

スート cクラブ dダイヤ hハート sスペード  

ランク 弱い順に 3456789tjqka2    ジョーカー jo  

<役の見方>  

スート カードと同じ  

ランク -3456789tjqka2+

UECdaでは jo-3-4 や a-2-jo の階段が許されるのでランクを上下1つずつ拡張している

シングルジョーカー jk

グループ役 スート集合-ランク  

例: ch-4 → (クラブ, ハート)の4

階段役 スート-ランク列  

例: s-jqk → スペードの[11, 12, 13]

ジョーカーを含むグループ役 スート集合-ランク(ジョーカーのスート)  

例: ch-4(h) → (クラブ, ハート)の4、ただしハートの4の代わりとしてジョーカー

※UECdaではジョーカーは特定のスートを表すルール。スートしばりも指定したスートで適用される  

ジョーカーを含む階段役 スート-ランク列(ジョーカーのランク)  

例: s-jqk(q) → スペードの[11, 12, 13]、ただしスペードの12の代わりにジョーカー

同一ランク4枚+ジョーカーによる5枚出し cdhsx-ランク のつもりだったが、  

大部分の棋譜では cdhsx-5(cdhs) みたいになっている バグなので()内は無視してほしい  

[]内 考慮時間 サーバーが microsec単位で記録

Q & A

Q1. なぜ役提出の考慮時間は記録されているのにカード交換の考慮時間はないんでしょうか?

A1. 大会公式サーバーにおいて役提出は1人ずつ同期通信で試合が進みますが、カード交換は大富豪と富豪に並列で思考命令が出され、両方の思考が終了したら先に進むので、カード交換の考慮時間を計測するにはサーバーのコードを書き換える必要があったためです。 また同様の理由により試合中のクライアントは大富豪、富豪の正確な考慮時間を知ることができないので、クライアントの作成に生かし辛い情報だという点もあります。

Q2. なぜ各クライアントの現局面評価がないんでしょうか?

A2. 大会公式にてプロトコルのサポートがありませんが、通信する配列の空いた場所を使って伝えることは可能ですので検討しています。ただし注意点として、クライアントによって順位の価値の見積もりが違うので順位の分布の予測値を記録する必要があります。クライアントが順位の分布を経由せずに評価している場合は非対応ということになりますね。

⚠️ **GitHub.com Fallback** ⚠️