Home > Archive > PERL Beginners > June 2007 > shuffling cards
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
|
|
| Amichai Teumim 2007-06-28, 3:59 am |
| I want to shuffle a deck of cards and then print out the top five cards.
#!/usr/bin/perl
@startingdeck = ("A H","2 H","3 H","4 H","5 H","6 H","7 H","8 H",
"9 H","10 H","J H","Q H","K H",
"A D","2 D","3 D","4 D","5 D","6 D","7 D","8 D",
"9 D","10 D","J D","Q D","K D",
"A C","2 C","3 C","4 C","5 C","6 C","7 C","8 C",
"9 C","10 C","J C","Q C","K C",
"A S","2 S","3 S","4 S","5 S","6 S","7 S","8 S",
"9 S","10 S","J S","Q S","K S");
for ($x=0;$x<100;$x++){
$shuffle1 = shift(@startingdeck);
$ahuffle2 = shift(@startingdeck);
$ahuffle3 = pop(@startingdeck);
$ahuffle4 = pop(@startingdeck);
push(@startingdeck,$shuffle1,$shuffle3,$
shuffle2,$shuffle4);
print "@startingdeck\n";
}
I know I'm meant to use loops. Maybe "for loops". I still don't quite
understand the loops. I've read over the doc for loops several times. I want
to learn this, so please provide me with hints and tips as opposed to plain
solutions if possible please.
Thanks
Amichai
| |
| Jeff Pang 2007-06-28, 3:59 am |
| Amichai Teumim 写道:
> I want to shuffle a deck of cards and then print out the top five cards.
>
But what's "top five cards" since I saw all the cards are unique.
| |
| John W. Krahn 2007-06-28, 3:59 am |
| Amichai Teumim wrote:
> I want to shuffle a deck of cards and then print out the top five cards.
>
> I want to learn this, so please provide me with hints and tips as
> opposed to plain solutions if possible please.
perldoc -q shuffle
John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall
| |
| T Baetzler 2007-06-28, 3:59 am |
| Amichai Teumim <amichai@teumim.com> asked:
> I want to shuffle a deck of cards and then print out the top=20
> five cards.
Read the Perl faq entry on shuffling arrays (i.e. perldoc -q shuffle).
If you're using a fairly recent version of Perl, this'll get you =
started.
#!/usr/bin/perl -w
use strict;
use 5.008;
use List::Util 'shuffle';
my @deck =3D shuffle("A H","2 H","3 H","4 H","5 H","6 H","7 H","8 H",
"9 H","10 H","J H","Q H","K H",
"A D","2 D","3 D","4 D","5 D","6 D","7 D","8 D",
"9 D","10 D","J D","Q D","K D",
"A C","2 C","3 C","4 C","5 C","6 C","7 C","8 C",
"9 C","10 C","J C","Q C","K C",
"A S","2 S","3 S","4 S","5 S","6 S","7 S","8 S",
"9 S","10 S","J S","Q S","K S");
print "Your hand: " . join( ', ', @deck[0..4] ) . "\n";
__END__
HTH,
Thomas
|
|
|
|
|