電脳麻将のプログラムでは変数名など識別子に中国語を使用している。私に限らず日本人はプログラム中の識別子に日本語を使うのを嫌う*1が、かといって麻雀用語の英語など知らないので中国語を採用した訳だ。
私のソースコードを読んでくれているのは中国人が多いようなのだが、それは彼らにとってコメントなし*2でもプログラムが読みやすいからではないかと思う。このままでは日本人プログラマに不公平(?)なので今回は識別子の中国語を説明する。
続きを読む天鳳の牌譜形式を解析する(3) - koba::blog のプログラムにバグがあったので修正する。
今までのプログラムは天鳳のログをそのままの順序で電脳麻将の形式に変換していたが、これだとカンの表示に不具合があった。
続きを読む天鳳の牌譜形式を解析する(1) - koba::blog、天鳳の牌譜形式を解析する(2) - koba::blog の続き。天鳳の牌譜形式のXML要素を1つ1つ電脳麻将の牌譜形式に変換していく。
続きを読む天鳳の牌譜形式を解析する(1) - koba::blog の続き。前回は天鳳の牌譜形式のXML要素・属性の意味を説明したので、今回はそれを解析するプログラムについて。
「牌番号」「面子コード」は複数の要素で使われているが、これを 麻雀の手牌の文字列表現 - koba::blog の形式に変換する。
続きを読む麻雀の副露判断アルゴリズム(3) - koba::blog で喰い仕掛けで手を完成させることができるようになったが、打牌を見ていると無駄がありそうである。例えば
の場合、打 は 、、、、、 の6種20枚待ち、打 だとそれに加えて 3枚も待ちになるが、 の面子が完成するのでタンヤオに移行できなくなってしまう。打 であれば、、 ポン、、 チーでも手を進めることができる。
続きを読む麻雀の副露判断アルゴリズム(2) - koba::blog で役ありの向聴数が計算できるようになったので、基本的には向聴数が減る場合に鳴けばよいのであるが、実際に動かしてみると以下の問題があった。
今回はこれを調整する。
*1:これは大明槓する条件を「向聴数が増えないとき」にしていたから