■
[麻雀]今更
鳴いた時、鳴いた牌を取ってきて、晒した牌に横向きにくっつけますよね?
これってプログラムが結構汚くなるし違和感があったんだけど、今更その違和感の正体に気づいた。
1. 打牌者の河から牌を消す必要はない
というか消さないほうがいい。フリテン判定のため。(これは気づいてたしそうしてたけど一応書いときます)
2. 取ってきた牌を横向きにする(特別扱いする)必要はない
後で、そのメンツのどの牌を鳴いてきたかや誰から鳴いたかを参照することは無いので、晒した牌と取ってきた牌はマージしていい。
プログラム的に書くと、
enum naki_type { CHI, PON, ANKAN, DAIMINKAN, KAKAN }; struct naki { naki_type t; vector<pai> pais; };
これだけで良いという主張。(naki_typeはカンを分類したいしまあこうしておくのが良かろう)
しかしこんなことは万人が気づいてそうで悲しい。
追記:
大明槓と加カンを区別する必要ないじゃん…。
そもそもフーロしたものはもう和了時にしか使わないんだから、こういう感じでいいのか。
enum mentsu_type { SYUNTSU, MINKOU, ANKOU, MINKAN, ANKAN }; struct mentsu { mentsu_type t; vector<pai> pais; };