I have a file well call file.pl. It's a card sorting program. I need to create a lib fuction with part of the original file that shuffles the deck of cards. After it shuffles the first deck and deals a hand of cards I need it to call the shuffling function again before dealing another hand. I call the lib function file file-lib.pl.
here's the contents i have for file.pl - #!/usr/bin/perl
-
-
require 'file-lib.pl';
-
my @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");
-
push@startingdeck, @startingdeck;
-
print "@startingdeck[0..4]\n"
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
And here are the contents for file-lib.pl - sub shuffle(){
-
for my $x(0..99){
-
my @shuffle = (
-
shift(@startingdeck),
-
pop(@startingdeck),
-
shift(@startingdeck),
-
pop(@startingdeck),
-
shift(@startingdeck),
-
pop(@startingdeck),
-
shift(@startingdeck),
-
pop(@startingdeck),
-
);
-
}
-
}
-
1;
i realize some of this may not be what is considered good perl programming techniques. But I merely just want it to work.
8 4810
Not school work. Can u show me how it should look?
A simple example of List::Util::shuffle: - use List::Util qw/shuffle/;
-
-
my @sorted_list = (1..100);
-
my @unsorted_list = shuffle(@sorted_list);
-
-
print @unsorted_list, "\n"; # Will print 1-100 in some random order
can u show me how my code should look if i didn't want to use List::Util::shuffle:
can u show me how my code should look if i didn't want to use List::Util::shuffle:
Your code will not shuffle the array. Don't even bother with it unless you meant something else besides shuffling.
Look here: http://perldoc.perl.org/perlfaq4.htm...ay-randomly%3f
Use the Fisher-Yates shuffle example to shuffle your array. If you still need help, post the code you tried to write using the Fisher-Yates example.
From my original program below I want to remove the code that does the shuffling and include it as a function in let's say mylibfile.pl. Then from myfile.pl using (require 'mylibfile.pl') do the following. Deal a hand of cards then call the shuffling function again before dealing another, different hand. (myfile.pl) - my @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 my $x(0..99){
-
my @shuffle = (
-
shift(@startingdeck),
-
pop(@startingdeck),
-
shift(@startingdeck),
-
pop(@startingdeck),
-
shift(@startingdeck),
-
pop(@startingdeck),
-
shift(@startingdeck),
-
pop(@startingdeck),
-
);
-
push@startingdeck, @startingdeck;
-
print "@startingdeck[0..4]\n"
Well, that wasn;t much of an effort on your part. Here it is, next time I hope to see you at least try.
myfile.pl: -
use strict;
-
use warnings;
-
require mylibfile.pl;#<--assumes it is in the same folder as myfile.pl
-
-
my @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");
-
-
my @shuffled = shuffle(\@deck);
-
print "@shuffled[0..4]";#<-- demonstration only
-
mylibfile.pl: -
use strict;
-
use warnings;
-
-
sub shuffle {
-
my $deck = shift;
-
my $i = @$deck;
-
while (--$i) {
-
my $j = int rand ($i+1);
-
@$deck[$i,$j] = @$deck[$j,$i];
-
}
-
return @{$deck};
-
}
-
1;#<--keep this here
-
just call the shuffle() function as needed to reshuffle the deck.
thanks for the help. ........................................
Post your reply Sign in to post your reply or Sign up for a free account.
Similar topics
23 posts
views
Thread by JC |
last post: by
| | |
10 posts
views
Thread by Arun Nair |
last post: by
|
4 posts
views
Thread by Pratik |
last post: by
| | | | | | | | | | | | | | |