[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1298
  • Last Modified:

shuffle cards in Perl

Using pop, shift, push, and the starting code below, write a script that sufficiently "shuffles" a simulated deck of cards before printing 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");
0
craziestfire73
Asked:
craziestfire73
  • 2
1 Solution
 
ozoCommented:
see
perldoc -q shuffle
0
 
craziestfire73Author Commented:
Thanks ozo:

I was able to shuffle the cards but I'm only able to print out the top 16 cards and not the top 5. here is what I have:

#!/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");
@random_card = shuffle(@startingdeck);

foreach $line (@random_card){
       push(@startingdeck, shift(@random_card));
       push(@startingdeck,  pop(@random_card));
}
print 'random top 5 cards: ' .  join(',  ', @random_card) . "\n";

any guidance would be appreciated
0
 
craziestfire73Author Commented:
I was not looking for the answer but a guide to my problem and the answer helped a lot.
0
 
wilcoxonCommented:
To print only the top 5 cards, you change the final print to:

print 'random top 5 cards: ', join(', ', @random_card[0..4]), "\n";
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now