Deal cards for FreeCell: Difference between revisions
Content added Content deleted
m (→{{header|Ruby}}: Tweak module Enumerable.) |
|||
Line 197: | Line 197: | ||
4♠ T♠ 2♥ 5♦ J♣ 6♣ J♥ Q♥ |
4♠ T♠ 2♥ 5♦ J♣ 6♣ J♥ Q♥ |
||
J♦ K♠ K♣ 4♥ </lang> |
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}}== |
=={{header|Ruby}}== |