Example #1
0
        public void NextPlayCard(Card mCardToPlay)
        {
            GameForm.AddLog(string.Format("{0} plays {1}", CurrentPlayer.Name, mCardToPlay.ToString()));

            CurrentPlayer.PlayedCard(mCardToPlay);

            bool lastPlayer = (Table.Count == Players.Count);

            if (lastPlayer)
            {
                Card bestCard = Table.First();

                for (int i = 0; i < Table.Count; i++)
                {
                    if (Table[i].IsWinnerAgainst(bestCard))
                        bestCard = Table[i];
                }

                Player winnerPlayer = bestCard.LastPlayer;

                GameForm.AddLog(string.Format("{0} is the best card, played by {1}", bestCard.ToString(), winnerPlayer.Name));

                for (int index = 0; index < Table.Count; index++)
                {
                    Card card = Table[index];
                    winnerPlayer.Taken.Add(card);
                    GameForm.AddLog(string.Format("{0} wins {1}", winnerPlayer.Name, card.ToString()));
                }

                Table.Clear();

                NextPlayer(winnerPlayer);
                NextDeal();
            }
            else
            {
                NextPlayer();
            }
        }