public override IHandClassification Classify(Hand hand) { var nOfAKind = new NOfAKind(hand); if (nOfAKind.HasNOfAKind(2)) { var pairCardValue = nOfAKind.NOfAKindValues(2).First(); return(new PairClassification(pairCardValue)); } return(Next.Classify(hand)); }
public override IHandClassification Classify(Hand hand) { var nOfAKind = new NOfAKind(hand); var hasThreeOfAKind = nOfAKind.HasNOfAKind(3); var hasTwoOfAKind = nOfAKind.HasNOfAKind(2); var isFullHouse = hasThreeOfAKind && hasTwoOfAKind; if (isFullHouse) { var tripletCardValue = nOfAKind.NOfAKindValues(3).First(); var pairCardValue = nOfAKind.NOfAKindValues(2).First(); return(new FullHouseClassification(tripletCardValue, pairCardValue)); } return(Next.Classify(hand)); }