Is this some pseudo-poker or are you trying to simulate a 52 card deck? What are all the rules, or do you only care about two of a kind?

I'd seriously suggest taking a step back and organizing how you want to represent a card, a deck, and some pseudocode (English) description of scoring rules. Also when you process those strings you are really going to be splitting them into an array anyway.. but how come no hashes? They are nice because you can check if a key exists and you can do something like foreach (sort keys %myhash). If this is an assignment then work it out with hashes yourself later okay?

You could give each card a two letter code, like 5H for five of hearts. It would even be faster if you add a letter for which color it is because you could use regular expressions to see what color a card is, to check for flushes and straights.

This solves the question you asked.

#!/usr/bin/perl -w use strict; my $handstr = "3S 4H 3C 4C 7D"; my @hand = split(' ',$handstr); my @sorthand = sort @hand; my $uniquevals = my $ans = ""; my ($faceval,$numdups); foreach my $card (@sorthand) { $faceval = substr($card,0,1); $uniquevals .= "$faceval " unless $uniquevals =~ /$faceval/; } foreach my $v (split (' ',$uniquevals)) { $numdups = $handstr =~ s/$v/$v/g; $ans .= "$numdups "; } chop $uniquevals; chop $ans; print "Your hand is ",join(' ',@sorthand),", unique face\n"; print "values $uniquevals. The hand reduces to $ans.\n";

In reply to Re: Keeping track of Pairs by mattr
in thread Keeping track of Pairs by Satira

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.