A small standalone console application to build a Poker Bot. I am building it from scratch during my free time with TDD in mind.
TBD
using Nicomputer.PokerBot.Cards;
using Nicomputer.PokerBot.Cards.Hands;
var hands = new List<PokerHand>();
var analyzer = new PokerHandAnalyzer();
var myHand = new PokerHand(new HoleCards("Qs", "Qc"), new CardsCollection("Kh Ks 7d Ad Th"));
hands.Add(analyzer.GetPokerHand(myHand));
Console.WriteLine($"{myHand}"); // Displays: Hole Cards[QsQc] and Board[Kh Ks 7d Ad Th]. Best Poker Hand is TwoPairs.
myHand = new PokerHand(new HoleCards("As", "Ac"), new CardsCollection("Kh Ks 7d Jd Th"));
hands.Add(analyzer.GetPokerHand(myHand));
Console.WriteLine(hands[0].CompareTo(hands[1])); // Displays: 1
myHand = new PokerHand(new HoleCards("As", "Ah"), new CardsCollection("Ad Kh Th Jh Qh"));
hands.Add(analyzer.GetPokerHand(myHand));
foreach (var hand in hands)
{
Console.WriteLine(hand);
}
// Displays:
// Hole Cards[QsQc] and Board[Kh Ks 7d Ad Th]. Best Poker Hand is TwoPairs.
// Hole Cards[AsAc] and Board[Kh Ks 7d Jd Th]. Best Poker Hand is TwoPairs.
// Hole Cards[AsAh] and Board[Ad Kh Th Jh Qh]. Best Poker Hand is StraightFlush.
hands.Sort();
foreach (var hand in hands)
{
Console.WriteLine(hand);
}
// Displays:
// Hole Cards[AsAh] and Board[Ad Kh Th Jh Qh]. Best Poker Hand is StraightFlush.
// Hole Cards[AsAc] and Board[Kh Ks 7d Jd Th]. Best Poker Hand is TwoPairs.
// Hole Cards[QsQc] and Board[Kh Ks 7d Ad Th]. Best Poker Hand is TwoPairs.
Unit Tests direclty accessible within the solution here
TBD
- 0.1.0 Initial release