Can be simplified to:my %count; ++$count{$_} foreach @c; my @pairs = grep { $count{$_} >= 2 } sort { $b <=> $a } @c; my @kind3 = grep { $count{$_} >= 3 } @pairs; my @kind4 = grep { $count{$_} >= 4 } @kind3;
I used this trick and several others in RFC: Cribbage::Hand.my ($points, %count); ++$count{$_} for @c; $points += $_ * ($_ - 1) for values %count;
Cheers - L~R
In reply to Re^2: calculating cribbage points
by Limbic~Region
in thread calculating cribbage points
by dracos
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |