新年あけましておめでとうございます。 正月といえば(私は)麻雀なんですが、今年はやる機会がなかったので rubyで麻雀してみました。 元ネタはこちら makeplex salon:あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 (2/2) - ITmedia エンタープライズ 考え方 3時間以上かかってしまいましたが、なんとかできました。 ここで使う用語。 ・面子(同一 or 連続する牌3枚) ・頭(同一牌2枚) ・待(もう一枚で面子or頭となる牌。1 or 3枚) 上がりとなるパターンは下記2種類と考えます。 ・3面子(9枚)+頭(2枚)+待(2枚) ・4面子(12枚)+待(1枚) なので、この面子となる組み合わせを再帰で探索する方向で 書いてみました。 こんな感じ ソース class Majang def mati(haipai) @tenpai = [] mati_