保守ついでに、ここで問題を出してみる。お題は麻雀。

pai という数値型配列を作る。
中に入る数値は
1〜9 : ソーズの1〜9
10〜19 : ピンズの1〜9
20〜29 : マンズの1〜9
30,31,32,33 : 東, 南, 西, 北
34,35,36 : 白, 發, 中
とする。

同じ数からなる長さ 2 のリスト[N,N]をトイツと呼ぶ。1 <= N <= 36
同じ数からなる長さ 3 のリスト[N,N,N]をコーツと呼ぶ。1 <= N <= 36
公差1の長さ 3 のリスト[N,N+1,N+2]をシュンツと呼ぶ。1 <= N <= 7 | 11 <= N <= 17 | 21 <= N <= 27

長さ14 の pai が 1つのトイツ と 4つのコーツとシュンツ で構成されていた場合、アガリとする。

また、長さ13 の pai に、数 N を付け足すとアガリになるとき、N を待ちと呼ぶ。


問題1:長さ14 の pai を与えると、アガリの時 1 を、それ以外は 0 をstatに返す関数を
      #deffunc agari val
      を使って書きなさい。

問題2:長さ13 の pai と長さ 10 の数値配列 machi を与えると、その待ちを machi の中に
     リストアップする関数を
     #deffunc tenpai val, val
     を使って書きなさい。(待ちがNとMだったなら、machi.0 = N, machi.1 = M, machi.2〜 = 0)

一番簡潔に書けた人が勝ち。問題2はやらなくてもいいかも。