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 NotFullHouseHand() { var hand = new Hand(new List<ICard>() { new Card(CardFace.Seven, CardSuit.Hearts), new Card(CardFace.King, CardSuit.Spades), new Card(CardFace.Ten, CardSuit.Diamonds), new Card(CardFace.Ten, CardSuit.Spades), new Card(CardFace.Seven, CardSuit.Clubs) }); var checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFullHouse(hand)); }
public void TestIsFullHouseLessCards() { Card cardOne = new Card(CardFace.Two, CardSuit.Diamonds); Card cardTwo = new Card(CardFace.Two, CardSuit.Hearts); Card cardThree = new Card(CardFace.Two, CardSuit.Spades); 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 isFullHouse = poker.IsFullHouse(hand); Assert.AreEqual(false, isFullHouse, "IsFullHouse() method in class PokerHandsChecker is not working correctly."); }
public void TestIsFourOfAKindShouldReturnFalseWhenNotMatchingHandPassed_ThreeOfAKind() { var checker = new PokerHandsChecker(); var cards = new List<ICard> { new Card(CardFace.Four, CardSuit.Spades), new Card(CardFace.Four, CardSuit.Diamonds), new Card(CardFace.Four, CardSuit.Hearts), new Card(CardFace.Three, CardSuit.Clubs), new Card(CardFace.Six, CardSuit.Hearts) }; var hand = new Hand(cards); Assert.IsFalse(checker.IsFullHouse(hand)); }
public static void Main() { var hand = new Hand(new List<ICard>() { new Card(CardFace.Seven, CardSuit.Diamonds), new Card(CardFace.Three, CardSuit.Diamonds), new Card(CardFace.Queen, CardSuit.Diamonds), new Card(CardFace.Queen, CardSuit.Spades), new Card(CardFace.Queen, CardSuit.Clubs), }); var pokerChecker = new PokerHandsChecker(); bool result = pokerChecker.IsFullHouse(hand); }
public static void Main() { var hand = new Hand(new List <ICard>() { new Card(CardFace.Seven, CardSuit.Diamonds), new Card(CardFace.Three, CardSuit.Diamonds), new Card(CardFace.Queen, CardSuit.Diamonds), new Card(CardFace.Queen, CardSuit.Spades), new Card(CardFace.Queen, CardSuit.Clubs), }); var pokerChecker = new PokerHandsChecker(); bool result = pokerChecker.IsFullHouse(hand); }
public void IsFullHouse_HandWithTwoPairs() { IList<ICard> cards = new List<ICard> { new Card(CardFace.Ace, CardSuit.Diamonds), new Card(CardFace.Ace, CardSuit.Hearts), new Card(CardFace.Eight, CardSuit.Clubs), new Card(CardFace.Six, CardSuit.Hearts), new Card(CardFace.Six, CardSuit.Spades), }; Hand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFullHouse(hand)); }
public void TwoPair() { IList<ICard> cards = new List<ICard>(); cards.Add(new Card(CardFace.Ace, CardSuit.Clubs)); cards.Add(new Card(CardFace.Ace, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Queen, CardSuit.Hearts)); cards.Add(new Card(CardFace.Ten, CardSuit.Spades)); cards.Add(new Card(CardFace.Ten, CardSuit.Clubs)); Hand hand = new Hand(cards); PokerHandsChecker checker = new PokerHandsChecker(); bool result = checker.IsFullHouse(hand); bool expected = false; Assert.AreEqual(expected, result); }
public void IsNotFullHouseTest() { Card twoOfHearts = new Card(CardFace.Two, CardSuit.Hearts); Card aceOfSpades = new Card(CardFace.Ace, CardSuit.Spades); Card aceOfHearts = new Card(CardFace.Ace, CardSuit.Hearts); Card aceOfClubs = new Card(CardFace.Ace, CardSuit.Clubs); Card tenOfHearts = new Card(CardFace.Ten, CardSuit.Hearts); List<ICard> cardsInHand = new List<ICard>(); cardsInHand.Add(twoOfHearts); cardsInHand.Add(aceOfSpades); cardsInHand.Add(aceOfHearts); cardsInHand.Add(aceOfClubs); cardsInHand.Add(tenOfHearts); IHand hand = new Hand(cardsInHand); PokerHandsChecker handsChecker = new PokerHandsChecker(); Assert.IsFalse(handsChecker.IsFullHouse(hand)); }
public void IsFullHouseTest() { Card aceClubs = new Card(CardFace.Ace, CardSuit.Clubs); Card aceHearts = new Card(CardFace.Ace, CardSuit.Hearts); Card jackHearts = new Card(CardFace.Jack, CardSuit.Hearts); Card jackClubs = new Card(CardFace.Jack, CardSuit.Clubs); Card aceDiamonds = new Card(CardFace.Ace, CardSuit.Diamonds); List<ICard> cardsInHand = new List<ICard>(); cardsInHand.Add(aceDiamonds); cardsInHand.Add(aceClubs); cardsInHand.Add(jackClubs); cardsInHand.Add(aceHearts); cardsInHand.Add(jackHearts); IHand hand = new Hand(cardsInHand); PokerHandsChecker handsChecker = new PokerHandsChecker(); Assert.IsTrue(handsChecker.IsFullHouse(hand)); }
public void IsFullHouseNullTest() { PokerHandsChecker handsChecker = new PokerHandsChecker(); Assert.IsFalse(handsChecker.IsFullHouse(null)); }
public void TestFullHouse3() { IHand hand = new Hand("10♠ A♥ A♠ 10♦ A♣"); PokerHandsChecker checker = new PokerHandsChecker(); Assert.IsTrue(checker.IsFullHouse(hand), "FullHouse is not identified correctly."); }
public void IsNotFullHouseTestValidHand() { PokerHandsChecker checker = new PokerHandsChecker(); Hand hand = new Hand(new List<ICard>() { new Card(CardFace.Three, CardSuit.Clubs), new Card(CardFace.Queen, CardSuit.Spades), new Card(CardFace.Seven, CardSuit.Clubs), new Card(CardFace.Queen, CardSuit.Diamonds), new Card(CardFace.Three, CardSuit.Spades) }); bool expectedIsFullHouse = false; bool actual; actual = checker.IsFullHouse(hand); Assert.AreEqual(expectedIsFullHouse, actual); }
public void FullHouseFalseTest() { List<Card> cards = new List<Card>(){ new Card(CardFace.Nine, CardSuit.Hearts), new Card(CardFace.Jack, CardSuit.Spades), new Card(CardFace.Ace, CardSuit.Diamonds), new Card(CardFace.Nine, CardSuit.Clubs), new Card(CardFace.Jack, CardSuit.Hearts) }; Hand hand = new Hand(cards.ToArray()); PokerHandsChecker checker = new PokerHandsChecker(); var excpected = false; var actual = checker.IsFullHouse(hand); Assert.AreEqual(excpected, actual); }
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)); }
public void TestIsFullHouseShouldThrowException_TwoOfTheSameCards() { var checker = new PokerHandsChecker(); var cards = new List<ICard> { new Card(CardFace.Four, CardSuit.Spades), new Card(CardFace.Five, CardSuit.Diamonds), new Card(CardFace.Four, CardSuit.Spades), new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Hearts) }; var hand = new Hand(cards); checker.IsFullHouse(hand); }
public void TestIsFullHouseShouldReturnTrue() { var checker = new PokerHandsChecker(); var cards = new List<ICard> { new Card(CardFace.Four, CardSuit.Diamonds), new Card(CardFace.Five, CardSuit.Diamonds), new Card(CardFace.Four, CardSuit.Spades), new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Hearts) }; var hand = new Hand(cards); Assert.IsTrue(checker.IsFullHouse(hand)); }
public void IsNotFullHouseTest() { PokerHandsChecker target = new PokerHandsChecker(); IList<ICard> cards = new List<ICard>(); cards.Add(new Card(CardFace.Five, CardSuit.Hearts)); cards.Add(new Card(CardFace.Ace, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Five, CardSuit.Clubs)); cards.Add(new Card(CardFace.Eight, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Eight, CardSuit.Clubs)); IHand hand = new Hand(cards); bool expected = false; bool actual; actual = target.IsFullHouse(hand); Assert.AreEqual(expected, actual); }
public void FullHouseCheckerShouldReturnTrueWhenHandIsAValidFullHouse() { IPokerHandsChecker checker = new PokerHandsChecker(); IHand hand = new Hand(new List<ICard>() { new Card(CardFace.Eight, CardSuit.Diamonds), new Card(CardFace.Eight, CardSuit.Hearts), new Card(CardFace.Eight, CardSuit.Spades), new Card(CardFace.Five, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Diamonds) }); bool result = checker.IsFullHouse(hand); bool expected = true; Assert.AreEqual(result, expected); }
internal static int CompareTwoFullHouseHands(IHand firstHand, IHand secondHand) { if (checker.IsFullHouse(firstHand) && !checker.IsFullHouse(secondHand)) { return(1); } else if (!checker.IsFullHouse(firstHand) && checker.IsFullHouse(secondHand)) { return(-1); } Dictionary <CardFace, int> firstHandCounts = new Dictionary <CardFace, int>(); Dictionary <CardFace, int> secondCardCounts = new Dictionary <CardFace, int>(); for (int i = 0; i < firstHand.Cards.Count; i++) { if (firstHandCounts.ContainsKey(firstHand.Cards[i].Face)) { firstHandCounts[firstHand.Cards[i].Face] += 1; } else { firstHandCounts.Add(firstHand.Cards[i].Face, 1); } if (secondCardCounts.ContainsKey(secondHand.Cards[i].Face)) { secondCardCounts[secondHand.Cards[i].Face] += 1; } else { secondCardCounts.Add(secondHand.Cards[i].Face, 1); } } var firstHandThreeKind = 0; var firstHandPair = 0; var secondHandThreeKind = 0; var secondHandPair = 0; foreach (var item in firstHandCounts) { if (item.Value == 3) { firstHandThreeKind = (int)item.Key; } if (item.Value == 2) { firstHandPair = (int)item.Key; } } foreach (var item in secondCardCounts) { if (item.Value == 3) { secondHandThreeKind = (int)item.Key; } if (item.Value == 2) { secondHandPair = (int)item.Key; } } if (firstHandThreeKind > secondHandThreeKind) { return(1); } else if (firstHandThreeKind < secondHandThreeKind) { return(-1); } else if (firstHandPair > secondHandPair) { return(1); } else if (firstHandPair < secondHandPair) { return(-1); } else { return(0); } }
public void TestPokerCheckerNotFullHouseHand() { List<ICard> cards = new List<ICard>(); cards.Add(new Card(CardFace.Queen, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Queen, CardSuit.Hearts)); cards.Add(new Card(CardFace.Queen, CardSuit.Spades)); cards.Add(new Card(CardFace.King, CardSuit.Diamonds)); cards.Add(new Card(CardFace.Six, CardSuit.Clubs)); var hand = new Hand(cards); var checker = new PokerHandsChecker(); Assert.IsFalse(checker.IsFullHouse(hand)); }