閃いた

悩んだときは風呂に入るべきである!
ということで寝る前に書き殴っておく。

sub is_pinhu
{
  # 面子以外にオタ風は何か、上がり牌は何かの情報が必要 
  my ($mentsu, ...) = @_;
  順子 = である。
  頭;
 両面待ち=でない

  foreach my $line ( @$mentsu ) {
    
    my ($first, $second, $third) = split /\,/, $line;
    
    if (defined $third) {
       # 
       if (順子である) {
          if ($first eq 上がり牌 or $second eq 上がり牌) {
             両面待ち=である
          }
       }
       else{
          順子 = でない
          last;
       }
    }
    else{
       # 頭
       頭は役牌?オタ風ならok
       if (頭がオタ風か 2..8 ) {
          頭 = オタ風か2..8
       }
       else{
          頭 = 役牌か1,9
          last;
       }
    }
  }
  
  if (順子である && 頭がオタ風か2..8 && 両面待ちである) {
     平和成立!
  }
}