Ejemplo n.º 1
0
        public bool Analyze(IEnumerable <HandHistories.Objects.Cards.Card> playerCards, BoardCards boardCards)
        {
            if (playerCards == null || boardCards == null || playerCards.Count() != 2 || boardCards.Count() < 3)
            {
                return(false);
            }

            if (!HandAnalyzerHelpers.IsFlush(playerCards))
            {
                return(false);
            }

            var sortedBoard = boardCards.OrderBy(x => x.RankNumericValue);

            for (int i = 0; i < sortedBoard.Count() - 3; i++)
            {
                var cards = sortedBoard.Take(3).ToList();

                if (cards.Any(x => x.Suit != playerCards.First().Suit))
                {
                    return(false);
                }

                cards.AddRange(playerCards);
                if (HandAnalyzerHelpers.IsStraight(cards, true))
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 2
0
        public bool Analyze(IEnumerable <HandHistories.Objects.Cards.Card> playerCards, BoardCards boardCards)
        {
            if (playerCards == null || boardCards == null || playerCards.Count() != 2 || boardCards.Count() == 0)
            {
                return(false);
            }

            if (HandAnalyzerHelpers.IsFlush(playerCards))
            {
                var allCards  = new List <HandHistories.Objects.Cards.Card>(playerCards);
                var boardCopy = new List <HandHistories.Objects.Cards.Card>(boardCards.Where(x => x.Suit == allCards.First().Suit));
                allCards.AddRange(boardCopy);

                var royalFlushCards = HandAnalyzerHelpers.GetRoyalFlushCards(allCards);
                if (royalFlushCards != null)
                {
                    if (!playerCards.Any(c => !royalFlushCards.Contains(c)))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Ejemplo n.º 3
0
        public bool Analyze(IEnumerable <HandHistories.Objects.Cards.Card> playerCards, BoardCards boardCards)
        {
            if (playerCards == null || boardCards == null || playerCards.Count() != 2 || boardCards.Count() < 3)
            {
                return(false);
            }

            if (!HandAnalyzerHelpers.IsFlush(playerCards))
            {
                return(false);
            }

            var allCards = new List <Cards.Card>(playerCards);

            allCards.AddRange(boardCards);

            var suitGroup = allCards.GroupBy(x => x.Suit);

            if (suitGroup.Any(g => g.Count() >= 5))
            {
                var flushBoardCards = suitGroup.Where(g => g.Count() >= 5).First().OrderByDescending(x => x.RankNumericValue).Take(5);
                if (playerCards.All(x => flushBoardCards.Any(f => f.CardStringValue == x.CardStringValue)))
                {
                    return(playerCards.Any(x => HandAnalyzerHelpers.IsDecentKicker(x)));
                }
            }
            return(false);
        }
Ejemplo n.º 4
0
        public bool Analyze(IEnumerable <HandHistories.Objects.Cards.Card> playerCards, BoardCards boardCards)
        {
            if (boardCards == null || boardCards.Count() == 0)
            {
                return(false);
            }

            if (HandAnalyzerHelpers.IsFlush(boardCards) && HandAnalyzerHelpers.IsStraight(boardCards, true))
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 5
0
        public bool Analyze(IEnumerable <HandHistories.Objects.Cards.Card> playerCards, BoardCards boardCards)
        {
            if (boardCards == null || boardCards.Count() == 0)
            {
                return(false);
            }

            if (HandAnalyzerHelpers.IsFlush(boardCards) && HandAnalyzerHelpers.IsStraight(boardCards) && boardCards.Any(x => x.Rank == HandHistories.Objects.Cards.Card.PossibleRanksHighCardFirst.First()))
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 6
0
        public bool Analyze(IEnumerable <HandHistories.Objects.Cards.Card> playerCards, BoardCards boardCards)
        {
            if (playerCards == null || boardCards == null || playerCards.Count() != 2 || boardCards.Count() < 4)
            {
                return(false);
            }

            if (!HandAnalyzerHelpers.IsFlush(playerCards))
            {
                return(false);
            }

            var sortedBoard = boardCards.OrderBy(x => x.RankNumericValue);

            for (int i = 0; i < sortedBoard.Count() - 4; i++)
            {
                var cards = sortedBoard.Take(4).ToList();

                if (!HandAnalyzerHelpers.IsFlush(cards))
                {
                    return(false);
                }

                foreach (var card in playerCards)
                {
                    var straightFlushCards = new List <Cards.Card>(cards);
                    straightFlushCards.Add(card);
                    if (HandAnalyzerHelpers.IsFlush(straightFlushCards) && HandAnalyzerHelpers.IsStraight(straightFlushCards, true))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }