閃いた
悩んだときは風呂に入るべきである!
ということで寝る前に書き殴っておく。
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 && 両面待ちである) { 平和成立! } }