Пример #1
0
        public void CountPlayersPoints()
        {
            var firstTeam = true;

            foreach (var player in Players)
            {
                var playedCards  = CardsPlayedByPlayers[player];
                var playerPoints = BelotteRules.ComputePoints(Trump, playedCards);
                if (player.Equals(LastTrickWinner))
                {
                    playerPoints += 10;
                }

                if (firstTeam)
                {
                    firstTeam        = false;
                    FirstTeamPoints += playerPoints;
                }
                else
                {
                    firstTeam         = true;
                    SecondTeamPoints += playerPoints;
                }
            }
        }
Пример #2
0
        public void Play(Dictionary <IPlayer, List <Card> > cardsHeldByPlayers,
                         Dictionary <IPlayer, List <Card> > cardsPlayedByPlayers)
        {
            if (!cardsHeldByPlayers.Any())
            {
                return;
            }

            PlayedCards = new Dictionary <IPlayer, Card>();
            foreach (var player in PlayersOrdered)
            {
                var playerCards = cardsHeldByPlayers[player];
                var playedCard  = player.Play(playerCards);
                PlayedCards[player] = playedCard;
                cardsHeldByPlayers[player].Remove(playedCard);
                if (cardsPlayedByPlayers.ContainsKey(player))
                {
                    cardsPlayedByPlayers[player].Add(playedCard);
                }
            }
            Taker = BelotteRules.ComputeTaker(Trump, PlayedCards);
        }