Ejemplo n.º 1
0
// 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;
}
Ejemplo n.º 2
0
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;
}