public void TestHighCardIsFound() { PokerHand hand = new PokerHand(""); hand.AddCard(CardValues.Seven, Suits.Hearts); hand.AddCard(CardValues.Five, Suits.Clubs); hand.AddCard(CardValues.Four, Suits.Hearts); hand.AddCard(CardValues.Three, Suits.Hearts); hand.AddCard(CardValues.Two, Suits.Hearts); Assert.AreEqual(PokerHandValues.HighCard, hand.Value); }
public void TestThreeOfAKindIsFound() { PokerHand hand = new PokerHand(""); hand.AddCard(CardValues.Five, Suits.Hearts); hand.AddCard(CardValues.Five, Suits.Clubs); hand.AddCard(CardValues.Five, Suits.Diamonds); hand.AddCard(CardValues.Four, Suits.Hearts); hand.AddCard(CardValues.Three, Suits.Hearts); Assert.AreEqual(PokerHandValues.ThreeOfAKind, hand.Value); }
public void TestFullHouseIsFound() { PokerHand hand = new PokerHand(""); hand.AddCard(CardValues.Five, Suits.Hearts); hand.AddCard(CardValues.Five, Suits.Clubs); hand.AddCard(CardValues.Five, Suits.Diamonds); hand.AddCard(CardValues.Four, Suits.Hearts); hand.AddCard(CardValues.Four, Suits.Clubs); Assert.AreEqual(PokerHandValues.FullHouse, hand.Value); }
public void CanIdentifyThreeOfAKind() { var sut = new PokerHand(); sut.AddCard(new Card(Suit.Heart, Value.Two)); sut.AddCard(new Card(Suit.Club, Value.Two)); sut.AddCard(new Card(Suit.Spade, Value.Seven)); sut.AddCard(new Card(Suit.Diamond, Value.Eight)); sut.AddCard(new Card(Suit.Heart, Value.Two)); var handStrength = sut.GetHandStrength(); Assert.AreEqual(HandStrength.ThreeOfAKind, handStrength); }
public void AHandOf5UnrelatedCardsIsWorthNothing() { var sut = new PokerHand(); sut.AddCard(new Card(Suit.Heart, Value.Two)); sut.AddCard(new Card(Suit.Club, Value.Three)); sut.AddCard(new Card(Suit.Spade, Value.Seven)); sut.AddCard(new Card(Suit.Diamond, Value.Eight)); sut.AddCard(new Card(Suit.Heart, Value.Ten)); var handStrength = sut.GetHandStrength(); Assert.AreEqual(HandStrength.Nothing, handStrength); }
public void TestFlushIsFound() { PokerHand heartsHand = new PokerHand(""); PokerHand clubsHand = new PokerHand(""); PokerHand diamondsHand = new PokerHand(""); PokerHand spadesHand = new PokerHand(""); heartsHand.AddCard(CardValues.Seven, Suits.Hearts); heartsHand.AddCard(CardValues.Five, Suits.Hearts); heartsHand.AddCard(CardValues.Four, Suits.Hearts); heartsHand.AddCard(CardValues.Three, Suits.Hearts); heartsHand.AddCard(CardValues.Two, Suits.Hearts); clubsHand.AddCard(CardValues.Seven, Suits.Clubs); clubsHand.AddCard(CardValues.Five, Suits.Clubs); clubsHand.AddCard(CardValues.Four, Suits.Clubs); clubsHand.AddCard(CardValues.Three, Suits.Clubs); clubsHand.AddCard(CardValues.Two, Suits.Clubs); diamondsHand.AddCard(CardValues.Seven, Suits.Diamonds); diamondsHand.AddCard(CardValues.Five, Suits.Diamonds); diamondsHand.AddCard(CardValues.Four, Suits.Diamonds); diamondsHand.AddCard(CardValues.Three, Suits.Diamonds); diamondsHand.AddCard(CardValues.Two, Suits.Diamonds); spadesHand.AddCard(CardValues.Seven, Suits.Spades); spadesHand.AddCard(CardValues.Five, Suits.Spades); spadesHand.AddCard(CardValues.Four, Suits.Spades); spadesHand.AddCard(CardValues.Three, Suits.Spades); spadesHand.AddCard(CardValues.Two, Suits.Spades); Assert.AreEqual(PokerHandValues.Flush, heartsHand.Value); Assert.AreEqual(PokerHandValues.Flush, clubsHand.Value); Assert.AreEqual(PokerHandValues.Flush, diamondsHand.Value); Assert.AreEqual(PokerHandValues.Flush, spadesHand.Value); }
public void TestRoyalFlushIsFound() { PokerHand heartHand = new PokerHand(""); PokerHand clubHand = new PokerHand(""); PokerHand diamondHand = new PokerHand(""); PokerHand spadeHand = new PokerHand(""); heartHand.AddCard(CardValues.Ace, Suits.Hearts); heartHand.AddCard(CardValues.King, Suits.Hearts); heartHand.AddCard(CardValues.Queen, Suits.Hearts); heartHand.AddCard(CardValues.Jack, Suits.Hearts); heartHand.AddCard(CardValues.Ten, Suits.Hearts); clubHand.AddCard(CardValues.Ace, Suits.Clubs); clubHand.AddCard(CardValues.King, Suits.Clubs); clubHand.AddCard(CardValues.Queen, Suits.Clubs); clubHand.AddCard(CardValues.Jack, Suits.Clubs); clubHand.AddCard(CardValues.Ten, Suits.Clubs); diamondHand.AddCard(CardValues.Ace, Suits.Diamonds); diamondHand.AddCard(CardValues.King, Suits.Diamonds); diamondHand.AddCard(CardValues.Queen, Suits.Diamonds); diamondHand.AddCard(CardValues.Jack, Suits.Diamonds); diamondHand.AddCard(CardValues.Ten, Suits.Diamonds); spadeHand.AddCard(CardValues.Ace, Suits.Spades); spadeHand.AddCard(CardValues.King, Suits.Spades); spadeHand.AddCard(CardValues.Queen, Suits.Spades); spadeHand.AddCard(CardValues.Jack, Suits.Spades); spadeHand.AddCard(CardValues.Ten, Suits.Spades); Assert.AreEqual(PokerHandValues.RoyalFlush, heartHand.Value); Assert.AreEqual(PokerHandValues.RoyalFlush, clubHand.Value); Assert.AreEqual(PokerHandValues.RoyalFlush, diamondHand.Value); Assert.AreEqual(PokerHandValues.RoyalFlush, spadeHand.Value); }
private void btnStart_Click(object sender, EventArgs e) { // Use this method to confirm the random shuffler produces the expected hand distribution. rtbResults.Clear(); SortedList <PokerHandValues, int> handsDealt = new SortedList <PokerHandValues, int>(); int handsToDeal = Convert.ToInt32(txtHandsToDeal.Text); for (int i = 0; i < handsToDeal; i++) { Deck deck = Shuffler.GetShuffledDeck(); PokerHand hand = new PokerHand(""); for (int j = 0; j < 5; j++) { Card card = deck.TakeNextCard(); hand.AddCard(card.Value, card.Suit); } if (!handsDealt.ContainsKey(hand.Value)) { handsDealt.Add(hand.Value, 0); } handsDealt[hand.Value]++; } rtbResults.Clear(); foreach (KeyValuePair <PokerHandValues, int> keyValuePair in handsDealt) { rtbResults.Text += string.Format("{0}:\t {1}\t {2}", keyValuePair.Key, keyValuePair.Value, (Convert.ToDouble(keyValuePair.Value) / Convert.ToDouble(handsToDeal) * 100)); rtbResults.Text += Environment.NewLine; } }
public void TestStraightFlushIsFound() { PokerHand kingHighStraightFlush = new PokerHand(""); PokerHand queenHighStraightFlush = new PokerHand(""); PokerHand jackHighStraightFlush = new PokerHand(""); PokerHand tenHighStraightFlush = new PokerHand(""); PokerHand nineHighStraightFlush = new PokerHand(""); PokerHand eightHighStraightFlush = new PokerHand(""); PokerHand sevenHighStraightFlush = new PokerHand(""); PokerHand sixHighStraightFlush = new PokerHand(""); PokerHand fiveHighStraightFlush = new PokerHand(""); kingHighStraightFlush.AddCard(CardValues.King, Suits.Hearts); kingHighStraightFlush.AddCard(CardValues.Queen, Suits.Hearts); kingHighStraightFlush.AddCard(CardValues.Jack, Suits.Hearts); kingHighStraightFlush.AddCard(CardValues.Ten, Suits.Hearts); kingHighStraightFlush.AddCard(CardValues.Nine, Suits.Hearts); queenHighStraightFlush.AddCard(CardValues.Queen, Suits.Hearts); queenHighStraightFlush.AddCard(CardValues.Jack, Suits.Hearts); queenHighStraightFlush.AddCard(CardValues.Ten, Suits.Hearts); queenHighStraightFlush.AddCard(CardValues.Nine, Suits.Hearts); queenHighStraightFlush.AddCard(CardValues.Eight, Suits.Hearts); jackHighStraightFlush.AddCard(CardValues.Jack, Suits.Hearts); jackHighStraightFlush.AddCard(CardValues.Ten, Suits.Hearts); jackHighStraightFlush.AddCard(CardValues.Nine, Suits.Hearts); jackHighStraightFlush.AddCard(CardValues.Eight, Suits.Hearts); jackHighStraightFlush.AddCard(CardValues.Seven, Suits.Hearts); tenHighStraightFlush.AddCard(CardValues.Ten, Suits.Hearts); tenHighStraightFlush.AddCard(CardValues.Nine, Suits.Hearts); tenHighStraightFlush.AddCard(CardValues.Eight, Suits.Hearts); tenHighStraightFlush.AddCard(CardValues.Seven, Suits.Hearts); tenHighStraightFlush.AddCard(CardValues.Six, Suits.Hearts); nineHighStraightFlush.AddCard(CardValues.Nine, Suits.Hearts); nineHighStraightFlush.AddCard(CardValues.Eight, Suits.Hearts); nineHighStraightFlush.AddCard(CardValues.Seven, Suits.Hearts); nineHighStraightFlush.AddCard(CardValues.Six, Suits.Hearts); nineHighStraightFlush.AddCard(CardValues.Five, Suits.Hearts); eightHighStraightFlush.AddCard(CardValues.Eight, Suits.Hearts); eightHighStraightFlush.AddCard(CardValues.Seven, Suits.Hearts); eightHighStraightFlush.AddCard(CardValues.Six, Suits.Hearts); eightHighStraightFlush.AddCard(CardValues.Five, Suits.Hearts); eightHighStraightFlush.AddCard(CardValues.Four, Suits.Hearts); sevenHighStraightFlush.AddCard(CardValues.Seven, Suits.Hearts); sevenHighStraightFlush.AddCard(CardValues.Six, Suits.Hearts); sevenHighStraightFlush.AddCard(CardValues.Five, Suits.Hearts); sevenHighStraightFlush.AddCard(CardValues.Four, Suits.Hearts); sevenHighStraightFlush.AddCard(CardValues.Three, Suits.Hearts); sixHighStraightFlush.AddCard(CardValues.Six, Suits.Hearts); sixHighStraightFlush.AddCard(CardValues.Five, Suits.Hearts); sixHighStraightFlush.AddCard(CardValues.Four, Suits.Hearts); sixHighStraightFlush.AddCard(CardValues.Three, Suits.Hearts); sixHighStraightFlush.AddCard(CardValues.Two, Suits.Hearts); fiveHighStraightFlush.AddCard(CardValues.Five, Suits.Hearts); fiveHighStraightFlush.AddCard(CardValues.Four, Suits.Hearts); fiveHighStraightFlush.AddCard(CardValues.Three, Suits.Hearts); fiveHighStraightFlush.AddCard(CardValues.Two, Suits.Hearts); fiveHighStraightFlush.AddCard(CardValues.Ace, Suits.Hearts); Assert.AreEqual(PokerHandValues.StraightFlush, kingHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, queenHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, jackHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, tenHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, nineHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, eightHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, sevenHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, sixHighStraightFlush.Value); Assert.AreEqual(PokerHandValues.StraightFlush, fiveHighStraightFlush.Value); }