// TODO // Hand* Util::determineHandType(std::vector<Card*>& p_cards) { determineDuplicateCards(p_cards); Hand * newHand = nullptr; uint handType = HIGHEST_CARD; if (isRoyalFlush(p_cards)) { newHand = new NonRepeatedHand(ROYAL_FLUSH, p_cards); } else if (isStraightFlush(p_cards)) { newHand = new NonRepeatedHand(STRAIGHT_FLUSH, p_cards); } else if (isFourOfAKind()) { newHand = new RepeatedHand(FOUR_OF_A_KIND, p_cards, m_occurences, m_occurencesVector); } else if (isFullHouse()) { newHand = new RepeatedHand(FULL_HOUSE, p_cards, m_occurences, m_occurencesVector); } else if (isFlush(p_cards)) { newHand = new NonRepeatedHand(FLUSH, p_cards); } else if (isStraight(p_cards)) { newHand = new NonRepeatedHand(STRAIGHT, p_cards); } else if (isThreeOfAKind()) { newHand = new RepeatedHand(THREE_OF_A_KIND, p_cards, m_occurences, m_occurencesVector); } else if (isTwoPairs()) { newHand = new RepeatedHand(TWO_PAIRS, p_cards, m_occurences, m_occurencesVector); } else if (isOnePair()) { newHand = new RepeatedHand(ONE_PAIR, p_cards, m_occurences, m_occurencesVector); } else { newHand = new NonRepeatedHand(HIGHEST_CARD, p_cards); } m_occurences.clear(); m_occurencesVector.clear(); return newHand; }
char* calculForceSymbolique(char* hand) { // création des forces symboliques char* forceSymbolique = new char[10]; if (isStraightFlush(hand) == 1) { sprintf(forceSymbolique, "9%c", hand[0]); return forceSymbolique; } if (isQuads(hand) == 1) { if (hand[0] == hand[2]) { sprintf(forceSymbolique, "8%c%c", hand[0], hand[8]); return forceSymbolique; } sprintf(forceSymbolique, "8%c%c", hand[2], hand[0]); return forceSymbolique; } if (isFullHouse(hand) == 1) { if (hand[0] == hand[4]) { sprintf(forceSymbolique, "7%c%c", hand[4], hand[8]); return forceSymbolique; } sprintf(forceSymbolique, "7%c%c", hand[4], hand[0]); return forceSymbolique; } if (isFlush(hand) == 1) { sprintf(forceSymbolique, "6%c%c%c%c%c", hand[0], hand[2], hand[4], hand[6], hand[8]); return forceSymbolique; } if (isStraight(hand) == 1) { sprintf(forceSymbolique, "5%c", hand[0]); return forceSymbolique; } if (isTrips(hand) == 1) { if (hand[0] == hand[4]) { sprintf(forceSymbolique, "4%c%c%c", hand[4], hand[6], hand[8]); return forceSymbolique; } sprintf(forceSymbolique, "4%c%c%c", hand[4], hand[0], hand[2]); return forceSymbolique; } if (isTwoPairs(hand) == 1) { if (hand[0] != hand[2]) { sprintf(forceSymbolique, "3%c%c%c", hand[2], hand[6], hand[0]); return forceSymbolique; } else if (hand[8] != hand[6]) { sprintf(forceSymbolique, "3%c%c%c", hand[0], hand[4], hand[8]); return forceSymbolique; } sprintf(forceSymbolique, "3%c%c%c", hand[0], hand[6], hand[4]); return forceSymbolique; } if (isSinglePair(hand) == 1) { if (hand[0] == hand[2]) { sprintf(forceSymbolique, "2%c%c%c%c", hand[0], hand[4], hand[6], hand[8]); return forceSymbolique; } else if (hand[2] == hand[4]) { sprintf(forceSymbolique, "2%c%c%c%c", hand[2], hand[0], hand[6], hand[8]); return forceSymbolique; } else if (hand[4] == hand[6]) { sprintf(forceSymbolique, "2%c%c%c%c", hand[4], hand[0], hand[2], hand[8]); return forceSymbolique; } sprintf(forceSymbolique, "2%c%c%c%c", hand[6], hand[0], hand[2], hand[4]); return forceSymbolique; } sprintf(forceSymbolique, "1%c%c%c%c%c", hand[0], hand[2], hand[4], hand[6], hand[8]); /*forceSymbolique[0]='1'; forceSymbolique[1]=hand[0]; forceSymbolique[2]=hand[2]; forceSymbolique[3]=hand[4]; forceSymbolique[4]=hand[6]; forceSymbolique[5]=hand[8]; forceSymbolique[6]='\0';*/ return forceSymbolique; }