boom.roasted has asked for the wisdom of the Perl Monks concerning the following question:
I'm learning perl, and I'm trying to write a subroutine that will shuffle a deck of card, but not getting the whole deck back, why?
#!/usr/bin/perl require 'obj13-lib.pl'; @deck = ("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(@deck){ s/H/Hearts/; s/D/Diamonds/; s/C/Clubs/; s/S/Spades/; } print"original deck:\n"; print"@deck\n"; @hand = shuf(@deck); print"shuffled deck:\n"; print"@hand\n"; } sub shuf { + + foreach $_ (@deck){ $lastcard = pop(@deck); $firstcard = shift(@deck); push(@newdeck,$firstcard,$lastcard);} @answer = @newdeck; return @answer; + + }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: array shuffle
by ikegami (Patriarch) on Aug 18, 2011 at 03:25 UTC | |
by boom.roasted (Initiate) on Aug 18, 2011 at 03:54 UTC | |
by davido (Cardinal) on Aug 18, 2011 at 04:19 UTC | |
by jwkrahn (Abbot) on Aug 18, 2011 at 04:02 UTC | |
by ikegami (Patriarch) on Aug 18, 2011 at 06:03 UTC | |
|
Re: array shuffle
by johngg (Canon) on Aug 18, 2011 at 08:54 UTC | |
|
Re: array shuffle
by Anonymous Monk on Aug 18, 2011 at 11:29 UTC |