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; }
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; }