Exemple #1
0
        static void Main(string[] args)
        {
            var cards = new List <Card>();

            for (var i = 1; i < 14; i++)
            {
                foreach (Enums.Suit suit in Enum.GetValues(typeof(Enums.Suit)))
                {
                    cards.Add(new Card()
                    {
                        Face = i,
                        Suit = suit,
                    });
                }
            }

            var   rng         = new Random();
            IDeck deckOfCards = new DeckOfCards(cards, rng);

            var straightFlush = new Rule(new List <ICondition>
            {
                new Straight(), new Flush()
            }, "Straight Flush");

            var ruleSet = new RuleSet(new List <IRule> {
                straightFlush
            });



            var gameEnd = false;
            var tries   = 0;

            var stopwatch = Stopwatch.StartNew();

            while (!gameEnd)
            {
                var hand = deckOfCards.DrawRandomCards(5, false);

                if (ruleSet.CheckRules(hand, false))
                {
                    gameEnd = true;
                    Console.WriteLine($"Found a straight flush after {stopwatch.Elapsed.TotalSeconds} seconds and {tries} tries:");
                    foreach (var card in hand)
                    {
                        Console.WriteLine($"{card.Face} of {card.Suit}");
                    }
                }

                tries++;
            }
        }