コード例 #1
0
        /// <inheritdoc />
        public override IEnumerable <PlayerHandChallengedCards> GetChallengers(IEnumerable <PlayerHand> allPlayerHands)
        {
            var challengers = new List <PlayerHandChallengedCards>();

            foreach (var playerhand in allPlayerHands)
            {
                var challengedCards = playerhand.Hand
                                      .GroupBy(p => p.Suit)
                                      .Where(gSuits => gSuits.Count() >= ShowdownSettings.FlushHandCount)
                                      .SelectMany(g => g.AsEnumerable());

                if (challengedCards.Any())
                {
                    var playerHandChallenged = new PlayerHandChallengedCards(playerhand)
                    {
                        ChallengedCards = challengedCards
                    };
                    challengers.Add(playerHandChallenged);
                }
            }
            if (challengers.Any())
            {
                _logger?.LogDebug("Challengers detected. Challengers: {0}", string.Join(",", challengers.Select(x => x.PlayerHand.PlayerInfo.Name)));
            }
            return(challengers);
        }
コード例 #2
0
        private void AddPlayerAsChallenger(PlayerHand playerhand, List <PlayerHandChallengedCards> currentChallengerList, List <IGrouping <int, Card> > challengedCardsWithPair)
        {
            var challengedCards      = challengedCardsWithPair.SelectMany(g => g.Where(x => g.Key == x.Value)).ToList();
            var playerHandChallenged = new PlayerHandChallengedCards(playerhand)
            {
                ChallengedCards = challengedCards
            };

            currentChallengerList.Add(playerHandChallenged);
        }