static void Main()
        {
            var isAce = new AceCardSpecification();
            var isHighCard = new HighCardSpecification();
            var isRedCard = new RedSuitSpecification();

            var blackRoyalFlushesCards = isHighCard.Or(isAce).And(isRedCard.Not());

            var royalFlushes = new Deck().Cards
                .Where(card => blackRoyalFlushesCards.IsSatisfiedBy(card))
                .GroupBy(card => card.Suit)
                .Select((royalFlush) => string.Join(", ", royalFlush));

            Console.WriteLine(string.Join(Environment.NewLine, royalFlushes));
        }
Exemple #2
0
        static void Main()
        {
            var isAce      = new AceCardSpecification();
            var isHighCard = new HighCardSpecification();
            var isRedCard  = new RedSuitSpecification();

            var blackRoyalFlushesCards = isHighCard.Or(isAce).And(isRedCard.Not());

            var royalFlushes = new Deck().Cards
                               .Where(card => blackRoyalFlushesCards.IsSatisfiedBy(card))
                               .GroupBy(card => card.Suit)
                               .Select((royalFlush) => string.Join(", ", royalFlush));

            Console.WriteLine(string.Join(Environment.NewLine, royalFlushes));
        }