Deal cards for FreeCell: Difference between revisions

m (→‎{{header|Ruby}}: Tweak module Enumerable.)
Line 197:
4♠ T♠ 2♥ 5♦ J♣ 6♣ J♥ Q♥
J♦ K♠ K♣ 4♥ </lang>
 
=={{header|Perl}}==
<lang perl>use utf8;
sub deal {
my ($s, @a, @d) = shift;
sub rnd { ($s = ($s * 214013 + 2531011) & 0x7fffffff) >> 16 }
 
print "Hand $s\n";
for my $b (split "", "A23456789TJQK") {
push @d, map("$_$b", qw/♣ ♦ ♥ ♠/);
}
 
for (reverse 0 .. 51) {
my $r = rnd() % ($_ + 1);
($d[$r], $d[$_]) = ($d[$_], $d[$r]);
}
reverse @d
}
 
# This may look confusing.
(my $s = "@{[deal(shift @ARGV // 11982)]}") =~ s/(.{1,24})(?: |$)/$1\n/g;
print $s;</lang>
 
=={{header|Ruby}}==
Anonymous user