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