I posted this question before and I made some arrangements to my code. I'm wondering if this is working or maybe I'm understanding the objective wrong.
on this code I'm trying to call the subroutine twice to print out my desire deck of cards. I'm able to call it once but once I call it a second time, I don't get the desire output. any advice will be thankful.
The objective is to shuffle the deck of cards, just once, with just using pop,shift and push, and print out the top 6 cards. I,m able to accomplish that. Now I want to practice on my subroutine calling. First I want call on the function, after the first hand is dealt, I want to call the shuffling function again before dealing another, a different hand.
#########main scritp#######
#!/usr/bin/perl -w use strict; use diagnostics; my @startingdeck = ("A H","2 H","3 H","4 H","5 H","6 H","7H","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"); @cards = @startingdeck; my $x = 0; my @cards = &shuffle(@cards); @cards = &shuffle(@cards); while($x <= 4){ foreach(@cards){ $_ =~ s/C/Clubs/,s/S/Spades/, s/H/Hearts/,s/D/Diamonds/; print"@cards[$x]\n"; $x++; } }
###############Library script########
sub shuffle{ my @cards = @_; foreach $card(@cards){ my @element1 = (pop(@cards), shift(@cards), pop(@cards)); + my @element2 = (shift(@cards), pop(@cards), shift(@cards)); push(@cards, @element1, @element2); } return @cards; }
In reply to Perl subroutine update by craziestfire73
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |