private SpecifiedPokerHand SpecifiedPokerHand(PokerHand pokerHand) { PokerHandFactory pokerHandFactory = new PokerHandFactory(); SpecifiedPokerHand specifiedPokerHand = pokerHandFactory.Create(pokerHand); return(specifiedPokerHand); }
public int CompareHands(PokerHand hand1, PokerHand hand2) { try { //Pre-condition - both hands must have exactly 5 cards! if (hand1.Count != 5 || hand2.Count != 5) { throw new IllegalNoOfCardsInHandException("An illegal number of cards was assigned to a poker hand. A poker hand must have five cards."); } // side-effect free (expected post condition) PokerHand hand1Copy = CreateCopy(hand1); PokerHand hand2Copy = CreateCopy(hand2); // rest of the logic assumes above is sorted... PokerHandFactory pokerHandFactory = new PokerHandFactory(); SpecifiedPokerHand specifiedHand1 = pokerHandFactory.Create(hand1Copy); SpecifiedPokerHand specifiedHand2 = pokerHandFactory.Create(hand2Copy); return(specifiedHand1.CompareTo(specifiedHand2)); } catch (IllegalNoOfCardsInHandException) { // Any necessary logging here... throw; } catch (Exception ex) { // Any necessary logging here... throw new UnknownPokerComparisonException("An unknown exception occurred while trying to compare poker hands.", ex); } }