Sponsored Content
Top Forums Shell Programming and Scripting Shuffling 'cards' using perl. Post 302345492 by durden_tyler on Wednesday 19th of August 2009 11:13:23 AM
Old 08-19-2009
Code:
$
$ cat shuffle.pl
#!/usr/bin/perl
$n = defined $ARGV[0] ? $ARGV[0] : 1;
@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");
foreach $j (1..$n) {
  print "Top 5 cards for shuffle # $j\n";
  shuffle();
}
sub shuffle {
  foreach $i (1..5){
    printf("%d => %s\n",$i,$startingdeck[sprintf("%d",rand(51))]);
  }
}
$
$ perl shuffle.pl
Top 5 cards for shuffle # 1
1 => 8 C
2 => 8 D
3 => 9 D
4 => 4 S
5 => 7 D
$
$ perl shuffle.pl 3
Top 5 cards for shuffle # 1
1 => K H
2 => 2 H
3 => A H
4 => A S
5 => A D
Top 5 cards for shuffle # 2
1 => 3 C
2 => 7 D
3 => J D
4 => J H
5 => 7 S
Top 5 cards for shuffle # 3
1 => 7 S
2 => K H
3 => 3 S
4 => 10 H
5 => J H
$
$

tyler_durden
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sound cards

hey im having problems getting my sound to work, im running linux mandrake 8.0 and it detects the sound card but it will not play any sound if there are any ideas or slutions please let me know.-vassago (3 Replies)
Discussion started by: vassago
3 Replies

2. BSD

WLAN PCI Cards

Hi! I just wanted to know what network cards are supported in FreeBSD. I have looked at the list of supported cards but I can't find any of them in the stores. Is the list not updated, I would really preciate info about where (in EU, Sweden) I can buy them. /Peter (2 Replies)
Discussion started by: Barfly.se
2 Replies

3. Linux

sound cards

i installed Red Hat Fedora (successfully this time) and my sound card wasnt automticly found or what ever. so how do i get my sound working and stuff? how do i gonfigure the sound card? how do i get it to detect the sound card? (4 Replies)
Discussion started by: xcaliber
4 Replies

4. Solaris

x25 cards on solaris 8

Has anyone configured one of these things, I cant seem to find any documentation on sunsolve, I want to verify that it is up and running... (1 Reply)
Discussion started by: csaunders
1 Replies

5. Solaris

How to List all Network cards

Hi, I'm looking for a command to be able to list all my network cards available on my server. With the command "ifconfig - a", I can only see to configured network card(s) Any idea ? :confused: Thanks a lot for your help, Fabien (5 Replies)
Discussion started by: unclefab
5 Replies

6. High Performance Computing

veritas and nic cards

Hello I have 2 machines with 3 NIC cards. When I setup veritas, I receive this message: e1000g1 has an IP address configured on it. It could be a public NIC on ken. Are you sure you want to use e1000g1 for the first private heartbeat link? As if e1000g1 should not have an IP address.... (2 Replies)
Discussion started by: melanie_pfefer
2 Replies

7. HP-UX

HP UX 9000 NIC CARDS

Hello, I am trying to move an HP UX from one locaion to another. The new location don't have any Fiber switches. On the back of my server I see 2 RJ 45 for console management the other for networking , the server also has a fiber NIC card. When I disconnec the fiber and want to user regular... (1 Reply)
Discussion started by: ldaliosmane
1 Replies

8. High Performance Computing

Graphics cards

More and more applications which consist of computationally intensive tasks rely on the graphics card's capabilities in order to speed up the calculations. The question is how can one know whether the graphics card will have any influence for a proprietary application? (2 Replies)
Discussion started by: figaro
2 Replies

9. Fedora

Shuffling a text file

Hi, I have a text file that is a single column. How do I write code to shuffle it? Thanks! Sample input: NANP DLGAP5 BUB1 C4orf46 BID (6 Replies)
Discussion started by: evelibertine
6 Replies

10. Shell Programming and Scripting

PERL - getting last file using wild cards

Hi experts, I am new to perl. I am trying to get the last file from set of files. Using the below code; but getting error pls help Files: -rw-r--r-- 1 abc abc 12584 Mar 18 16:22 /abc/def/ghi/xyz.HOSTNAME.2016.03.18.16.21.69709-6 -rw-r--r-- 1 abc abc 12623 Mar 18 16:25... (4 Replies)
Discussion started by: sdosanjh
4 Replies
List::Util(3pm) 					User Contributed Perl Documentation					   List::Util(3pm)

NAME
List::Util - A selection of general-utility list subroutines SYNOPSIS
use List::Util qw(first max maxstr min minstr reduce shuffle sum); DESCRIPTION
"List::Util" contains a selection of subroutines that people have expressed would be nice to have in the perl core, but the usage would not really be high enough to warrant the use of a keyword, and the size so small such that being individual extensions would be wasteful. By default "List::Util" does not export any subroutines. The subroutines defined are first BLOCK LIST Similar to "grep" in that it evaluates BLOCK setting $_ to each element of LIST in turn. "first" returns the first element where the result from BLOCK is a true value. If BLOCK never returns true or LIST was empty then "undef" is returned. $foo = first { defined($_) } @list # first defined value in @list $foo = first { $_ > $value } @list # first value in @list which # is greater than $value This function could be implemented using "reduce" like this $foo = reduce { defined($a) ? $a : wanted($b) ? $b : undef } undef, @list for example wanted() could be defined() which would return the first defined value in @list max LIST Returns the entry in the list with the highest numerical value. If the list is empty then "undef" is returned. $foo = max 1..10 # 10 $foo = max 3,9,12 # 12 $foo = max @bar, @baz # whatever This function could be implemented using "reduce" like this $foo = reduce { $a > $b ? $a : $b } 1..10 maxstr LIST Similar to "max", but treats all the entries in the list as strings and returns the highest string as defined by the "gt" operator. If the list is empty then "undef" is returned. $foo = maxstr 'A'..'Z' # 'Z' $foo = maxstr "hello","world" # "world" $foo = maxstr @bar, @baz # whatever This function could be implemented using "reduce" like this $foo = reduce { $a gt $b ? $a : $b } 'A'..'Z' min LIST Similar to "max" but returns the entry in the list with the lowest numerical value. If the list is empty then "undef" is returned. $foo = min 1..10 # 1 $foo = min 3,9,12 # 3 $foo = min @bar, @baz # whatever This function could be implemented using "reduce" like this $foo = reduce { $a < $b ? $a : $b } 1..10 minstr LIST Similar to "min", but treats all the entries in the list as strings and returns the lowest string as defined by the "lt" operator. If the list is empty then "undef" is returned. $foo = minstr 'A'..'Z' # 'A' $foo = minstr "hello","world" # "hello" $foo = minstr @bar, @baz # whatever This function could be implemented using "reduce" like this $foo = reduce { $a lt $b ? $a : $b } 'A'..'Z' reduce BLOCK LIST Reduces LIST by calling BLOCK, in a scalar context, multiple times, setting $a and $b each time. The first call will be with $a and $b set to the first two elements of the list, subsequent calls will be done by setting $a to the result of the previous call and $b to the next element in the list. Returns the result of the last call to BLOCK. If LIST is empty then "undef" is returned. If LIST only contains one element then that element is returned and BLOCK is not executed. $foo = reduce { $a < $b ? $a : $b } 1..10 # min $foo = reduce { $a lt $b ? $a : $b } 'aa'..'zz' # minstr $foo = reduce { $a + $b } 1 .. 10 # sum $foo = reduce { $a . $b } @bar # concat If your algorithm requires that "reduce" produce an identity value, then make sure that you always pass that identity value as the first argument to prevent "undef" being returned $foo = reduce { $a + $b } 0, @values; # sum with 0 identity value shuffle LIST Returns the elements of LIST in a random order @cards = shuffle 0..51 # 0..51 in a random order sum LIST Returns the sum of all the elements in LIST. If LIST is empty then "undef" is returned. $foo = sum 1..10 # 55 $foo = sum 3,9,12 # 24 $foo = sum @bar, @baz # whatever This function could be implemented using "reduce" like this $foo = reduce { $a + $b } 1..10 If your algorithm requires that "sum" produce an identity of 0, then make sure that you always pass 0 as the first argument to prevent "undef" being returned $foo = sum 0, @values; KNOWN BUGS
With perl versions prior to 5.005 there are some cases where reduce will return an incorrect result. This will show up as test 7 of reduce.t failing. SUGGESTED ADDITIONS
The following are additions that have been requested, but I have been reluctant to add due to them being very simple to implement in perl # One argument is true sub any { $_ && return 1 for @_; 0 } # All arguments are true sub all { $_ || return 0 for @_; 1 } # All arguments are false sub none { $_ && return 0 for @_; 1 } # One argument is false sub notall { $_ || return 1 for @_; 0 } # How many elements are true sub true { scalar grep { $_ } @_ } # How many elements are false sub false { scalar grep { !$_ } @_ } SEE ALSO
Scalar::Util, List::MoreUtils COPYRIGHT
Copyright (c) 1997-2007 Graham Barr <gbarr@pobox.com>. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-03-24 List::Util(3pm)
All times are GMT -4. The time now is 06:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy