int score(int color){
    int outScore=0;
    if (outScore==0)
    {
        outScore = StraightFlush(color);
        outScore += (outScore>0?8*15:0);
//cout << "os8:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = FourOfAKind(color);
        outScore += (outScore>0?7*15:0);
//cout << "os7:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = FullHouse(color);
        outScore += (outScore>0?6*15:0);
//cout << "os6:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = Flush(color);
        outScore += (outScore>0?5*15:0);
//cout << "os5:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = Straight(color);
        outScore += (outScore>0?4*15:0);
//cout << "os4:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = ThreeOfAKind(color);
        outScore += (outScore>0?3*15:0);
//cout << "os3:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = TwoPair(color);
        outScore += (outScore>0?2*15:0);
//cout << "os2:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = Pair(color);
        outScore += (outScore>0?1*15:0);
//cout << "os1:" << outScore << endl;
    }
    if (outScore==0)
    {
        outScore = highCard(color);
        outScore += (outScore>0?0*15:0);
//cout << "os0:" << outScore << endl;
    }
    return outScore;
}
Esempio n. 2
0
std::vector<Card> Hand::FullHouse()
{
    std::vector<std::string> names = Hand::GetNames();
    std::vector<Card> cards;
    std::vector<Card> onePair = OnePair();
    std::vector<Card> threeOfAKind = ThreeOfAKind();

    if(!onePair.size())
        return cards;

    if(!threeOfAKind.size())
        return cards;

    if(threeOfAKind[0].GetName() != onePair[0].GetName())
    {
        cards.reserve(threeOfAKind.size() + onePair.size());
        cards.insert(cards.end(), threeOfAKind.begin(), threeOfAKind.end());
        cards.insert(cards.end(), onePair.begin(), onePair.end());
    }

    return cards;
}
int FullHouse(int color){
    int highCard = ThreeOfAKind(color);
    int secHighCard = Pair(color,highCard-1);
    if (secHighCard) return highCard;
    else return 0;
}