internal static int CompareTwoFlushHands(IHand firstHand, IHand secondHand) { if (checker.IsFlush(firstHand) && !checker.IsFlush(secondHand)) { return(1); } else if (!checker.IsFlush(firstHand) && checker.IsFlush(secondHand)) { return(-1); } var firstHandSortedCards = firstHand.Cards; var secondHandSortedCards = secondHand.Cards; PokerHandsChecker.SortCardsByFace(firstHandSortedCards); PokerHandsChecker.SortCardsByFace(secondHandSortedCards); for (int i = firstHandSortedCards.Count - 1; i >= 0; i--) { if ((int)firstHandSortedCards[i].Face > (int)secondHandSortedCards[i].Face) { return(1); } else if ((int)firstHandSortedCards[i].Face < (int)secondHandSortedCards[i].Face) { return(-1); } } return(0); }
private static void Main() { try { IHand hand = new Hand(new List<ICard>() { new Card(CardFace.Ace, CardSuit.Clubs), new Card(CardFace.Queen, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Jack, CardSuit.Clubs), new Card(CardFace.Ten, CardSuit.Clubs), }); Console.WriteLine(hand); IPokerHandsChecker checker = new PokerHandsChecker(); Console.WriteLine(checker.IsValidHand(hand) ? "Hand is valid." : "Hand is not valid!"); Console.WriteLine(checker.IsRoyalFlush(hand) ? "Royal flush." : "Hand is not Royal flush!"); Console.WriteLine(checker.IsStraightFlush(hand) ? "Straight flush." : "Hand is not Straight flush!"); Console.WriteLine(checker.IsFlush(hand) ? "Flush." : "Hand is not Flush!"); Console.WriteLine(checker.IsStraight(hand) ? "Straight." : "Hand is not Straight!"); Console.WriteLine(checker.IsFullHouse(hand) ? "Full house." : "Hand is not Full house!"); Console.WriteLine(checker.IsFourOfAKind(hand) ? "Four of a kind." : "Hand is not Four of a kind!"); Console.WriteLine(checker.IsThreeOfAKind(hand) ? "Three of a kind." : "Hand is not Three of a kind!"); IHand hand1 = new Hand("K♥ J♥ 8♣ 7♦ 4♠"); Console.WriteLine(hand1); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
static void Main() { ICard card = new Card(CardFace.Ace, CardSuit.Clubs); Console.WriteLine(card); IHand hand = new Hand(new List<ICard>() { new Card(CardFace.Ace, CardSuit.Clubs), new Card(CardFace.Ace, CardSuit.Diamonds), new Card(CardFace.King, CardSuit.Hearts), new Card(CardFace.King, CardSuit.Spades), new Card(CardFace.Seven, CardSuit.Diamonds), }); Console.WriteLine(hand); IPokerHandsChecker checker = new PokerHandsChecker(); Console.WriteLine(checker.IsValidHand(hand)); Console.WriteLine(checker.IsStraight(hand)); Console.WriteLine(checker.IsOnePair(hand)); Console.WriteLine(checker.IsTwoPair(hand)); Console.WriteLine(checker.IsStraightFlush(hand)); Console.WriteLine(checker.IsFlush(hand)); Console.WriteLine(checker.IsFourOfAKind(hand)); Console.WriteLine(checker.IsThreeOfAKind(hand)); Console.WriteLine(checker.IsHighCard(hand)); Console.WriteLine(checker.IsFullHouse(hand)); }
public void TestIsFlushFiveDifferentFaceEaqualSuitsNotSerial() { IList<ICard> cards = new List<ICard>(); Card card1 = new Card(CardFace.Ace, CardSuit.Spades); cards.Add(card1); Card card2 = new Card(CardFace.Ten, CardSuit.Spades); cards.Add(card2); Card card3 = new Card(CardFace.Queen, CardSuit.Spades); cards.Add(card3); Card card4 = new Card(CardFace.Jack, CardSuit.Spades); cards.Add(card4); Card card5 = new Card(CardFace.Seven, CardSuit.Spades); cards.Add(card5); Hand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); bool actual = checker.IsFlush(hand); bool expected = true; Assert.AreEqual(expected, actual); }
public void TestIsFlushHandWithInvalidFlush() { PokerHandsChecker checker = new PokerHandsChecker(); var cards = GenerateCorectCards(); var hand = new Hand(cards); bool isflush = checker.IsFlush(hand); Assert.IsFalse(isflush, "Hand is invalid flush and result mast be false."); }
public void TestIsNotFlushHandIfLessThan5Cards() { IList<ICard> cards = new List<ICard>() { new Card(CardFace.Two, CardSuit.Diamonds) }; Hand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFlush(hand)); }
public void TestForFlush() { IList<ICard> cardList = new List<ICard>(); cardList.Add(new Card(CardFace.King, CardSuit.Hearts)); cardList.Add(new Card(CardFace.Queen, CardSuit.Hearts)); cardList.Add(new Card(CardFace.Ace, CardSuit.Hearts)); cardList.Add(new Card(CardFace.Jack, CardSuit.Hearts)); cardList.Add(new Card(CardFace.Ten, CardSuit.Hearts)); var hand = new Hand(cardList); var handChecker = new PokerHandsChecker(); Assert.AreEqual(true, handChecker.IsFlush(hand)); }
public void IsFlushTest() { Hand pokerHand = new Hand(new List<ICard>(){ new Card(CardFace.Ace, CardSuit.Hearts), new Card(CardFace.King, CardSuit.Hearts), new Card(CardFace.Queen, CardSuit.Hearts), new Card(CardFace.Jack, CardSuit.Hearts), new Card(CardFace.Nine, CardSuit.Hearts)}); PokerHandsChecker checker = new PokerHandsChecker(); Assert.AreEqual(true, checker.IsFlush(pokerHand)); }
public void FlushNonValideHand_IsFalse() { IHand hand = new Hand(new List<ICard>() { new Card(CardFace.Ace, CardSuit.Clubs), new Card(CardFace.Ace, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Hearts), }); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFlush(hand)); }
public void NotFlushHand() { var hand = new Hand(new List<ICard>() { new Card(CardFace.Seven, CardSuit.Hearts), new Card(CardFace.Jack, CardSuit.Clubs), new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Three, CardSuit.Clubs) }); var checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFlush(hand)); }
public void TestFlushWithValidHand() { Hand hand = new Hand(new List<ICard>() { new Card(CardFace.Ace, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Queen, CardSuit.Clubs), new Card(CardFace.Jack, CardSuit.Clubs), new Card(CardFace.Seven, CardSuit.Clubs), }); IPokerHandsChecker checker = new PokerHandsChecker(); Assert.AreEqual(true, checker.IsFlush(hand)); }
public void TestFlushWithInvalidCards() { Hand hand = new Hand(new List<ICard>() { new Card(CardFace.Ace, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Queen, CardSuit.Hearts), new Card(CardFace.Jack, CardSuit.Clubs), new Card(CardFace.Ten, CardSuit.Clubs), }); IPokerHandsChecker checker = new PokerHandsChecker(); Assert.AreEqual(false, checker.IsFlush(hand)); }
public void IsFlush_WhithInValidHand_ShouldThrow() { Hand hand = new Hand(new List<ICard>() { new Card(CardFace.Queen, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Diamonds), new Card(CardFace.King, CardSuit.Diamonds), new Card(CardFace.Two, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Diamonds), }); IPokerHandsChecker checker = new PokerHandsChecker(); Assert.Throws(typeof(ArgumentException), new TestDelegate(() => {checker.IsFlush(hand);}), "IsFlush() with invalid hand should throw!"); }
public void TestIsFlushLessCards() { Card cardOne = new Card(CardFace.Two, CardSuit.Diamonds); Card cardTwo = new Card(CardFace.Jack, CardSuit.Diamonds); Card cardThree = new Card(CardFace.Five, CardSuit.Diamonds); IList<ICard> cards = new List<ICard>(); cards.Add(cardOne); cards.Add(cardTwo); cards.Add(cardThree); Hand hand = new Hand(cards); PokerHandsChecker poker = new PokerHandsChecker(); bool isFlush = poker.IsFlush(hand); Assert.AreEqual(false, isFlush, "IsFlush() method in class PokerHandsChecker is not working correctly."); }
public void IsFlush_CheckWithoutFlush() { var cards = new List<ICard>() { new Card(CardFace.Two, CardSuit.Clubs), new Card(CardFace.Three, CardSuit.Clubs), new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Clubs), new Card(CardFace.Ace, CardSuit.Hearts) }; var hand = new Hand(cards); var pokerHandsChecker = new PokerHandsChecker(); Assert.IsFalse(pokerHandsChecker.IsFlush(hand)); }
public void IsFlush_NoFlushWhithValidHand_ShouldReturnFalse() { Hand hand = new Hand(new List<ICard>() { new Card(CardFace.Queen, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Diamonds), new Card(CardFace.Two, CardSuit.Diamonds), new Card(CardFace.Jack, CardSuit.Diamonds), }); IPokerHandsChecker checker = new PokerHandsChecker(); Assert.AreEqual(false, checker.IsFlush(hand)); }
public void IsFlush_ReturnsFalseOnStraightFlush() { IList<ICard> cards = new List<ICard>(); cards.Add(new Card(CardFace.Ace, CardSuit.Clubs)); cards.Add(new Card(CardFace.Queen, CardSuit.Clubs)); cards.Add(new Card(CardFace.Jack, CardSuit.Clubs)); cards.Add(new Card(CardFace.Ten, CardSuit.Clubs)); cards.Add(new Card(CardFace.King, CardSuit.Clubs)); IHand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); bool isFlush = checker.IsFlush(hand); Assert.AreEqual(false, isFlush); }
public void FlushValidateFiveDifferentCards_IsFalse() { IHand hand = new Hand(new List<ICard>() { new Card(CardFace.Ace, CardSuit.Clubs), new Card(CardFace.Ace, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Hearts), new Card(CardFace.Ace, CardSuit.Spades), new Card(CardFace.Five, CardSuit.Clubs), }); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFlush(hand)); }
public void TestIsFlushShouldReturnTrue() { var checker = new PokerHandsChecker(); var cards = new List<ICard> { new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Clubs), new Card(CardFace.Six, CardSuit.Clubs), new Card(CardFace.Seven, CardSuit.Clubs), new Card(CardFace.Ten, CardSuit.Clubs) }; var hand = new Hand(cards); Assert.IsTrue(checker.IsFlush(hand)); }
public void TestIsFlushFiveOfKindNonSequent() { IList<ICard> cards = new List<ICard>() { new Card(CardFace.Two, CardSuit.Clubs), new Card(CardFace.Six, CardSuit.Clubs), new Card(CardFace.Ten, CardSuit.Clubs), new Card(CardFace.Jack, CardSuit.Clubs), new Card(CardFace.Ace, CardSuit.Clubs) }; Hand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsTrue(checker.IsFlush(hand)); }
public void IsFlush_ReturnsTrueOnFiveOfASuit() { IList<ICard> cards = new List<ICard>(); cards.Add(new Card(CardFace.Ace, CardSuit.Spades)); cards.Add(new Card(CardFace.Four, CardSuit.Spades)); cards.Add(new Card(CardFace.Nine, CardSuit.Spades)); cards.Add(new Card(CardFace.Eight, CardSuit.Spades)); cards.Add(new Card(CardFace.King, CardSuit.Spades)); IHand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); bool isFlush = checker.IsFlush(hand); Assert.AreEqual(true, isFlush); }
public void IsFlushTest() { PokerHandsChecker target = new PokerHandsChecker(); IList<ICard> cards = new List<ICard>(); cards.Add(new Card(CardFace.Jack, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Queen, CardSuit.Diamonds)); cards.Add(new Card(CardFace.King, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Seven, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Ace, CardSuit.Diamonds)); IHand hand = new Hand(cards); bool expected = true; bool actual; actual = target.IsFlush(hand); Assert.AreEqual(expected, actual); }
public void TestIsFlushFiveOfKindSequent_1() { IList<ICard> cards = new List<ICard>() { new Card(CardFace.Two, CardSuit.Clubs), new Card(CardFace.Three, CardSuit.Clubs), new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Clubs), new Card(CardFace.Six, CardSuit.Clubs) }; Hand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFlush(hand)); }
public void TestIsFlushShouldReturnFalseWhenNotMatchingHandPassed_StraightFlush() { var checker = new PokerHandsChecker(); var cards = new List<ICard> { new Card(CardFace.Four, CardSuit.Diamonds), new Card(CardFace.Five, CardSuit.Diamonds), new Card(CardFace.Six, CardSuit.Diamonds), new Card(CardFace.Seven, CardSuit.Diamonds), new Card(CardFace.Eight, CardSuit.Diamonds) }; var hand = new Hand(cards); Assert.IsFalse(checker.IsFlush(hand)); }
public void TestIsFlushFiveOfKindSequent_2() { IList<ICard> cards = new List<ICard>() { new Card(CardFace.Ten, CardSuit.Clubs), new Card(CardFace.Jack, CardSuit.Clubs), new Card(CardFace.Queen, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Ace, CardSuit.Clubs) }; Hand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFlush(hand)); }
public void IsFlushTrue() { Hand hand = new Hand(new List<ICard>() { new Card(CardFace.Two, CardSuit.Diamonds), new Card(CardFace.Three, CardSuit.Diamonds), new Card(CardFace.Five, CardSuit.Diamonds), new Card(CardFace.Ten, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Diamonds), }); PokerHandsChecker checkHand = new PokerHandsChecker(); bool isValidHand = checkHand.IsFlush(hand); Assert.IsTrue(isValidHand); }
public void IsFlush_TrueSecond() { PokerHandsChecker checker = new PokerHandsChecker(); List<ICard> cardList = new List<ICard> { new Card(CardFace.Ten,CardSuit.Clubs), new Card(CardFace.Jack,CardSuit.Clubs), new Card(CardFace.Ace,CardSuit.Clubs), new Card(CardFace.Two,CardSuit.Clubs), new Card(CardFace.Five,CardSuit.Clubs) }; Hand hand = new Hand(cardList); bool isFlush = checker.IsFlush(hand); Assert.IsTrue(isFlush); }
public void TestingPokerHandCheckerIsFlushShouldPass() { IList<ICard> list = new List<ICard>(); list.Add(new Card(CardFace.Nine, CardSuit.Spades)); list.Add(new Card(CardFace.Two, CardSuit.Spades)); list.Add(new Card(CardFace.Ten, CardSuit.Spades)); list.Add(new Card(CardFace.Two, CardSuit.Spades)); list.Add(new Card(CardFace.Jack, CardSuit.Spades)); var hand = new Hand(list); var test = new PokerHandsChecker(); Assert.IsTrue(test.IsFlush(hand)); }
public void FlushValidateFiveDifferentFromSameSuit_IsTrue() { IHand hand = new Hand(new List<ICard>() { new Card(CardFace.Ace, CardSuit.Spades), new Card(CardFace.King, CardSuit.Spades), new Card(CardFace.Four, CardSuit.Spades), new Card(CardFace.Two, CardSuit.Spades), new Card(CardFace.Five, CardSuit.Spades), }); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsTrue(checker.IsFlush(hand)); }
public void TestIsFlushFalse() { PokerHandsChecker handChecker = new PokerHandsChecker(); Hand hand = new Hand(new List<ICard>() { new Card(CardFace.Seven, CardSuit.Diamonds), new Card(CardFace.Jack, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Diamonds), new Card(CardFace.Three, CardSuit.Diamonds), new Card(CardFace.Four, CardSuit.Spades) }); bool result = handChecker.IsFlush(hand); Assert.AreEqual(false, result); }
public void FlushHandCheckerShouldReturnTrueWhenTheHandIsAValidFlushHand() { IPokerHandsChecker checker = new PokerHandsChecker(); IHand hand = new Hand(new List<ICard>() { new Card(CardFace.Six, CardSuit.Clubs), new Card(CardFace.Two, CardSuit.Clubs), new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Clubs) }); bool result = checker.IsFlush(hand); bool expected = true; Assert.AreEqual(result, expected); }
static void Main() { ICard card = new Card(CardFace.Ace, CardSuit.Clubs); Console.WriteLine(card); IHand hand = new Hand(new List <ICard>() { new Card(CardFace.Five, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Hearts), new Card(CardFace.Five, CardSuit.Diamonds), new Card(CardFace.Nine, CardSuit.Diamonds), new Card(CardFace.Five, CardSuit.Spades), }); Console.WriteLine(hand); IPokerHandsChecker checker = new PokerHandsChecker(); Console.WriteLine(checker.IsValidHand(hand)); Console.WriteLine(checker.IsFlush(hand)); Console.WriteLine(checker.IsOnePair(hand)); Console.WriteLine(checker.IsFourOfAKind(hand)); }
static void Main() { ICard card = new Card(CardFace.Ace, CardSuit.Clubs); Console.WriteLine("Current card is: " + card + Environment.NewLine); ///Normal hand\\\ IHand hand = new Hand(new List <ICard>() { new Card(CardFace.Three, CardSuit.Clubs), new Card(CardFace.Six, CardSuit.Diamonds), new Card(CardFace.King, CardSuit.Hearts), new Card(CardFace.Two, CardSuit.Spades), new Card(CardFace.Seven, CardSuit.Diamonds), }); /////Flush\\\ //IHand hand = new Hand(new List<ICard>() { // new Card(CardFace.Ace, CardSuit.Clubs), // new Card(CardFace.Ace, CardSuit.Clubs), // new Card(CardFace.King, CardSuit.Clubs), // new Card(CardFace.King, CardSuit.Clubs), // new Card(CardFace.Seven, CardSuit.Clubs), //}); /////Four of a kind\\\ //IHand hand = new Hand(new List<ICard>() { // new Card(CardFace.Ace, CardSuit.Clubs), // new Card(CardFace.Ace, CardSuit.Diamonds), // new Card(CardFace.Ace, CardSuit.Hearts), // new Card(CardFace.Ace, CardSuit.Spades), // new Card(CardFace.Eight, CardSuit.Clubs), //}); /////One pair\\\ //IHand hand = new Hand(new List<ICard>() { // new Card(CardFace.Ace, CardSuit.Clubs), // new Card(CardFace.Ace, CardSuit.Diamonds), // new Card(CardFace.Five, CardSuit.Hearts), // new Card(CardFace.Jack, CardSuit.Spades), // new Card(CardFace.Eight, CardSuit.Clubs), //}); /////Two pairs\\\ //IHand hand = new Hand(new List<ICard>() { // new Card(CardFace.Ace, CardSuit.Clubs), // new Card(CardFace.Ace, CardSuit.Diamonds), // new Card(CardFace.Five, CardSuit.Hearts), // new Card(CardFace.Jack, CardSuit.Spades), // new Card(CardFace.Jack, CardSuit.Clubs), //}); /////Straight Flush\\\ //IHand hand = new Hand(new List<ICard>() { // new Card(CardFace.Jack, CardSuit.Clubs), // new Card(CardFace.Ten, CardSuit.Clubs), // new Card(CardFace.Nine, CardSuit.Clubs), // new Card(CardFace.Eight, CardSuit.Clubs), // new Card(CardFace.Seven, CardSuit.Clubs), //}); /////Full House\\\ //IHand hand = new Hand(new List<ICard>() { // new Card(CardFace.Six, CardSuit.Diamonds), // new Card(CardFace.Six, CardSuit.Hearts), // new Card(CardFace.Nine, CardSuit.Clubs), // new Card(CardFace.Nine, CardSuit.Spades), // new Card(CardFace.Nine, CardSuit.Clubs), //}); /////Straight\\\ //IHand hand = new Hand(new List<ICard>() { // new Card(CardFace.King, CardSuit.Diamonds), // new Card(CardFace.Queen, CardSuit.Hearts), // new Card(CardFace.Jack, CardSuit.Clubs), // new Card(CardFace.Ten, CardSuit.Spades), // new Card(CardFace.Nine, CardSuit.Clubs), //}); Console.WriteLine(hand + Environment.NewLine); IPokerHandsChecker checker = new PokerHandsChecker(); Console.WriteLine("Is this hand valid: " + checker.IsValidHand(hand)); Console.WriteLine("Do you have one pair: " + checker.IsOnePair(hand)); Console.WriteLine("Do you have two pairs: " + checker.IsTwoPair(hand)); Console.WriteLine("Do you have a flush: " + checker.IsFlush(hand)); Console.WriteLine("Do you have four of a kind: " + checker.IsFourOfAKind(hand)); Console.WriteLine("Do you have three of a kind: " + checker.IsThreeOfAKind(hand)); Console.WriteLine("Do you have straight flush: " + checker.IsStraightFlush(hand)); Console.WriteLine("Do you have a full house: " + checker.IsFullHouse(hand)); Console.WriteLine("Do you have a straight: " + checker.IsStraight(hand)); Console.WriteLine("Do you have high card: " + checker.IsHighCard(hand)); }