public IBestPossibleHand Check(CheckerData data) { Data = data; if (HasHand()) { List <ICard> bestHand = GetHandCards(); SortByCardValue(bestHand); IList <CardValue> kickers = GetHandKickers(bestHand); BestPossibleHand hand = new BestPossibleHand(HandName, bestHand, kickers); return(hand); } return(new HandNullObject()); }
public IBestPossibleHand LocateBestHand(IEnumerable <ICard> theHoleCards, IEnumerable <ICard> theCommunityCards) { IList <ICard> cards = CreateCardsList(theHoleCards, theCommunityCards); CheckerData data = new CheckerData(cards); IBestPossibleHand hand = new HandNullObject(); foreach (CheckerBase checker in checkers) { hand = checker.Check(data); if (hand.HandName != HandName.NoHand) { break; } } return(hand); }