Ejemplo n.º 1
0
std::pair<int, int> Pokerhand::hand_value() {
    int val;

    if ((val = royal_flush()))
        return std::make_pair(10, val);
    if ((val = straight_flush()))
        return std::make_pair(9, val);
    if ((val = four()))
        return std::make_pair(8, val);
    if ((val = full_house()))
        return std::make_pair(7, val);
    if ((val = flush()))
        return std::make_pair(6, val);
    if ((val = straight()))
        return std::make_pair(5, val);
    if ((val = three()))
        return std::make_pair(4, val);
    if ((val = pairs()))
        return std::make_pair(3, val);
    if ((val = pair()))
        return std::make_pair(2, val);
    if ((val = high_card()))
        return std::make_pair(1, val);

    return std::make_pair(0, val);
}
Ejemplo n.º 2
0
int Euler54::compute_best_hand(Euler54::Hand _hand){
    if(royal_flush(_hand)){
        std::cout << "Royal Flush" << std::endl;
        return 10;
    }else if(straight_flush(_hand)){
        std::cout << "Straight Flush" << std::endl;
        return 9;
    }else if(quads(_hand)){
        std::cout << "Quads" << std::endl;
        return 8;   
    }else if(full_house(_hand)){
        std::cout << "Full House" << std::endl;
        return 7;
    }else if(flush(_hand)){
        std::cout << "Flush" << std::endl;
        return 6;
    }else if(straight(_hand)){
        std::cout << "Straight" << std::endl;
        return 5;
    }else if(trips(_hand)){
        std::cout << "Trips" << std::endl;
        return 4;
    }else if(two_pair(_hand)){
        std::cout << "Two Pair" << std::endl;
        return 3;
    }else if(pair(_hand, 0)){
        std::cout << "Pair" << std::endl;
        return 2;
    }else{
        set_highest_card(highest_card(_hand));
        std::cout << "you have the high card " << print_card(current_highest_card) << std::endl;
        return 1;
        std::cout << " you got squat " << std::endl;
    }
}
Ejemplo n.º 3
0
score getscore(hand h)
{
	score s;
	s.rank = hicard;
	s.topcard = h[4];

	// order dependency:
	if ( num_pairs(h)==1 ) {
		s.rank = pair;
		s.topcard = gtc_pairs(h);
	}

	if ( num_pairs(h)==2 ) {
		s.rank = two_pairs;
		s.topcard = gtc_pairs(h);
	}

	if ( three_of_kind(h) ) {
		s.rank = three_kind;
		s.topcard = gtc_threes(h);
	}

	if ( isstraight(h) ) {
		s.rank = straight;
		s.topcard = h[4];
	}

	if ( isflush(h) ) {
		s.rank = flush;
		s.topcard = h[4];
	}

	if ( ishouse(h) ) {
		s.rank = house;
		s.topcard = gtc_pairs(h);
		if ( gtc_threes(h).value > s.topcard.value )
			s.topcard = gtc_threes(h);
	}

	if ( four_of_kind(h) ) {
		s.rank = four_kind;
		s.topcard = gtc_fours(h);
	}

	if ( straight_flush(h) ) {
		s.rank = sflush;
		s.topcard = h[4];
	}

	if ( royal_flush(h) ) {
		s.rank = rflush;
		s.topcard = h[4];
	}

	return s;
}