in reply to Checking for a special matching

I guess another approach is search CPAN for poker modules like: Poker.

Replies are listed 'Best First'.
Re^2: Checking for a special matching
by heatblazer (Scribe) on Apr 02, 2012 at 11:57 UTC

    Good suggestion but I still need to make my own algorithm for this task.

      Look at the code as a reference point and also Javafan's suggestions, which I think are good (I like the 2 hash idea, but haven't coded it). Let us know how you get on with the next step.

        Thanks for encouragement... somehow I did a simple algorithm for matching elements of array... It`s a bit awkward pattern and it`s not 100% matching since it matches only numbers from the string :(

        #!/usr/bin/perl -wT use strict; use utf8; my @hand = ('k of hearts', '2 of hearts', '2 of diamonds', '10 of spa +des', 'Q of clubs', 'j of clubs', '10 of diamonds', '3 of hearts'); for ( my $i=0; $i<$#hand+1; $i++) { for ( my $j=$i+1; $j<$#hand+1; $j++) { if ( ($hand[$i] << 1) == ($hand[$j] <<1 ) ) { print $hand[$i], $hand[$j], "\n"; } } }

        This matched the pair of 2s and thee pair of 10s but matches and pair of Q and J which is wrong :(, well for now I can`t come with a better solution but I`ll keep improving.

      Before you write code you need to understand the specs. IOW, before you develop an algorithm and turn it into code, you need to get your facts straight.

      Becoming a good Perl programmer is possible without being an analyst... but when you're acting as your own analyst, step one is knowing the relevant facts. JavaFan mentioned a good many of them, but your subsequent posts show little sign that you recognized them as important to your progress.

      For example

      • most poker games (not blackjack, acey-ducey or the like) use either 5 card or 7 card hands -- sometimes with some of those shared ("in the middle"). But you've posted code with 4 cards in play and with 8.
      • "5 cards of the same color" wins nothing. Five cards in the same suit ("kind" is what you said at one point) in a different matter; that's a flush, and ranks higher than a straight, which is 5 cards (regardless) of suit, in numeric order, A..10 or 3..7, etc.
                and then we come to the code:
      • Have you found a use for << in a comparison? Generally, it's documented with heredocs

      And BTW, a script (code) is an expression of an algorithm; not an algorithm itself.

      Clearly, you deserve (and are receiving) credit for effort, but ignoring most of the suggestions and making up operators and syntax won't be an efficient way to learn.

      A reply falls below the community's threshold of quality. You may see it by logging in.