僕の考えはこうです。

�@萬子、筒子、索子、字牌の順に、例えば0〜8、10〜18、20〜28、29〜35のようにナンバリングします。
�A各牌が何個あるかを配列変数にカウントアップします。
�B特殊な形式である、国士と七対子かを判定してしまいます。
�C上記に該当しなかった場合、まず順子を優先して判定してしまいます。
�D残りの牌で刻子および対子(雀頭)を判定し、一度点数計算しておきます。
�Eもし順子が3組あって、かつ3つの順子が同じ牌であった場合
 刻子に直したほうが点が高い可能性もあるので、点を比較し、低かったら順子に戻します。

これでいけますかね?
もし無理そうならテンパイかどうかだけでもいいです。
ちなみに僕はすでにテンパってます(笑