Beispiel #1
0
        public bool MySideWinning(IPlayer thisPlayer, ITrick trick)
        {
            var winningPlay = GameStateUtils.GetWinningPlay(trick);

            if (trick.IHand.Picker == thisPlayer)
            {
                return(winningPlay.Key == trick.IHand.PresumedParnter);
            }
            if (PlayerKnowsSelfToBePartner(thisPlayer, trick))
            {
                return(winningPlay.Key == trick.IHand.Picker);
            }
            return(winningPlay.Key != trick.IHand.Picker &&
                   winningPlay.Key != trick.IHand.PresumedParnter &&
                   !(trick.IHand.PartnerCardEnum.HasValue && trick.IHand.PresumedParnter == null));
        }
Beispiel #2
0
        public static IEnumerable <SheepCard> GetCardsThatCouldWin(ITrick trick, IEnumerable <SheepCard> comparisonCards)
        {
            if (!trick.CardsByPlayer.Any())
            {
                return(comparisonCards);
            }
            var startSuit       = CardUtil.GetSuit(trick.CardsByPlayer.First().Value);
            var winningCard     = GameStateUtils.GetWinningPlay(trick).Value;
            var winningCardRank = CardUtil.GetRank(winningCard);

            if (CardUtil.GetSuit(winningCard) == Suit.TRUMP)
            {
                return(comparisonCards.Where(c => CardUtil.GetRank(c) < winningCardRank));
            }
            else
            {
                return(comparisonCards.Where(c =>
                                             CardUtil.GetSuit(c) == Suit.TRUMP ||
                                             CardUtil.GetSuit(c) == startSuit && CardUtil.GetRank(c) < winningCardRank
                                             ));
            }
        }