Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Poker problem

by YuckFoo (Abbot)
on Dec 02, 2008 at 21:31 UTC ( #727495=note: print w/ replies, xml ) Need Help??


in reply to Poker problem

Frame anything as a poker problem and I'll probably bite.

YuckCall

#!/usr/bin/perl use strict; use Storable qw(dclone); use Data::Dumper; my $players = { big_slicks => { list => [qw(AsKs AhKh AdKd AcKc)], }, big_hearts => { list => [qw(AhKh KhQh QhJh JhTh)], }, ace_ragman => { list => [qw(As7c Ah6d Ac8s Ad9h)], }, }; my $my_hand = 'AcAs'; for (1..10) { my $hands = iterate($players, $my_hand); $hands->{my_hand} = $my_hand; print Dumper $hands; } #----------------------------------------------------------- sub iterate { my $players = shift; my $my_hand = shift; $players = dclone($players); for my $card ($my_hand =~ /(.{2})/g) { update($players, $card); } my $player_hands = {}; my @player_keys = keys(%$players); while (@player_keys) { my $player = splice(@player_keys, rand(@player_keys), 1); my $hand_list = $players->{$player}{list}; my $pick = splice(@$hand_list, rand(@$hand_list), 1); for my $card ($pick =~ /(.{2})/g) { update($players, $card); } $player_hands->{$player} = $pick; } return $player_hands; } #----------------------------------------------------------- sub update { my $players = shift; my $card = shift; for my $player (keys(%$players)) { my @new_list = grep { $_ !~ m/$card/ } @{$players->{$player}{list} +}; $players->{$player}{list} = \@new_list; } }


Comment on Re: Poker problem
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://727495]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (4)
As of 2014-09-22 04:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (178 votes), past polls