Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Re: Re: Pattern Matching Query

by Lexicon (Chaplain)
on Sep 19, 2002 at 15:35 UTC ( #199202=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Pattern Matching Query
in thread Pattern Matching Query

Tis very try, but we played some three card games like Pineapple and some seven card games like Anaconda and 7 Card Stud. Plus, since I wasn't prepared to write an AI, it gives some indication of hand frequency when playing optimal 5 card draw.

I originally was writing the module to be object oriented, but do to the sheer speed requirements, I went this direction. As I recall, method calls are an order of magnatude slower than mere subroutine calls. Can anyone verify that? Unless you're planning an exhaustive search of the hand space, there's not much need for that kind of speed though. And a poker AI isn't going to be a branching tree search like Go or Chess, I'd imagine it would be mostly statistics based, also not so speed dependent.

The poker project drastically improved my Perl and general programming skills and math skills as well, especially the Math::Combinatorics::Combinator module, which required a heafty amount of analysis and then a heafty amount of optimization, and led to a couple of researching side projects like Fundamental Benchmarks.

So yeah, I love this kind of useless project (well, mine was useless :).


Comment on Re: Re: Re: Pattern Matching Query
Re: Re: Re: Re: Pattern Matching Query
by Elgon (Curate) on Sep 19, 2002 at 17:31 UTC

    Lexicon wrote...

    I originally was writing the module to be object oriented, but do to the sheer speed requirements, I went this direction. As I recall, method calls are an order of magnatude slower than mere subroutine calls. Can anyone verify that? Unless you're planning an exhaustive search of the hand space, there's not much need for that kind of speed though.

    Funnily enough, I find that to run 1 hand takes about a second - on a P120 laptop with 24 Meg of RAM running Debian - for either my original implementation or the OO version. The OO version runs at about the same speed as far as I can tell, but probably because the code has been improved significantly over the past few weeks. I imagine that if I stole the routines from my class into the old program's code, it would run faster...but then you can write programs like this:

    my $object = Texas -> gameon('8'); $object -> testhand('qh','ts'); # queen hearts, ten spades $object -> shuffle; $object -> deal; $object -> flop; $object -> turn; $object -> river; my @winners = ($object -> whowins);

    Elgon

    "What this book tells me is that goose-stepping morons, such as yourself, should read books instead of burning them."
           - Dr. Jones Snr, Indiana Jones and the Last Crusade

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (12)
As of 2014-09-23 12:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

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











    Results (219 votes), past polls