13枚の配牌から3つのメンツを選ぶところまで、やっとできた。
イーペーコー形も判定できる。
アタマを選ぶとか、テンパイしているかの判定までは、まだ。
(2013/04/09 だいぶボロがある。今修正中)
my @array = qw /1 1 2 3 3 4 5 6 7 7 8 9 9/;
my @found;
my %found;
my $count = 0;
print "haipai:@array\n";
&moura(\@array);
foreach $key(sort keys(%found)){
print "$key\n";
}
sub moura{
my ($array_ref) = @_;
my ($i,$j,$k);
my @temp = ();
for(@$array_ref){
if($_>0){
push @temp,$_;
}
}
@$array_ref = @temp;
if($count > 2){
if($#found > 1) {
$found{join("", sort @found)}++;
}
@found = ();
$count = 0;
}
for ($i=0;$i<=$#$array_ref;$i++){
for ($j=$i+1;$j<=$#$array_ref;$j++){
for ($k=$j+1;$k<=$#$array_ref;$k++){
if($array_ref->[$i] + 1 == $array_ref->[$j] && $array_ref->[$i] + 2 == $array_ref->[$k]){
push @found, $array_ref->[$i].$array_ref->[$j].$array_ref->[$k];
}elsif($array_ref->[$i] == $array_ref->[$j] && $array_ref->[$i] == $array_ref->[$k]){
push @found, $array_ref->[$i].$array_ref->[$j].$array_ref->[$k];
}
$count++;
@array2 = @$array_ref;
$array2[$i] = 0;
$array2[$j] = 0;
$array2[$k] = 0;
&moura(\@array2);
}
}
}
}