public RoyalFlush(ICardHandPattern successor, ICardHandPattern straight, ICardHandPattern flush) { Successor = successor; StraightQualifier = straight; FlushQualifier = flush; rank = RankOfHand.RoyalFlush; }
public FourOfAKind(ICardHandPattern successor) { Successor = successor; rank = RankOfHand.FourOfAKind; }
public Flush(ICardHandPattern successor) { Successor = successor; rank = RankOfHand.Flush; }
public OnePair(ICardHandPattern successor) { Successor = successor; rank = RankOfHand.OnePair; }
public FullHouse(ICardHandPattern successor) { Successor = successor; rank = RankOfHand.FullHouse; }
public Straight(ICardHandPattern successor) { Successor = successor; rank = RankOfHand.Straight; }
public void SetupCardPattern() { var highCard = new HighCard(); var onePair = new OnePair(highCard); var twoPair = new TwoPair(onePair); var threeOfAKind = new ThreeOfAKind(twoPair); var straight = new Straight(threeOfAKind); var flush = new Flush(straight); var fullHouse = new FullHouse(flush); var fourOfAKind = new FourOfAKind(fullHouse); var straightFlush = new StraightFlush(fourOfAKind, straight, flush); var royalFlush = new RoyalFlush(straightFlush, straight, flush); cardHandIdentifier = royalFlush; pokerEngine = new PokerEngine(); }
/// <summary> /// Third requirement: Identify type of hand /// </summary> /// <param name="cardEvaluator"> the evaluator is injected from client </param> /// <param name="cardHand"> the hand need to be evaluated</param> /// <returns>the rank of hand</returns> public RankOfHand IdentifyRankOfHand(ICardHandPattern cardEvaluator, List<Card> cardHand) { try { return cardEvaluator.ProccessRequest(cardHand); } catch (PokerException pex) { // code to write log file: datetime, description throw new ApplicationException(pex.Message, pex); } }
public ThreeOfAKind(ICardHandPattern successor) { Successor = successor; rank = RankOfHand.ThreeOfAKind; }