예제 #1
0
        //a round of hearts diffinetion
        public Round PlayRound(Round round)
        {
            RandomGenerator random = new RandomGenerator();
            //Shuffling CardDeck
            CardHandler cardHandler = new CardHandler();

            cardHandler.ShuffleCards(round.CardDeck);
            Round playedRound = new Round();

            // Dealing Cards to players
            DealCards(round.PlayerA, round.PlayerB, round.PlayerC, round.PlayerD, round.CardDeck);

            Card     firstCardOfRound = FindClubs2(round.PlayerA, round.PlayerB, round.PlayerC, round.PlayerD, round.CardDeck);
            CardDeck cardsPlayed      = new CardDeck();

            cardsPlayed.cardDeck.Clear();
            int counter = 1;

            while (counter != 52)
            {
                playedRound = ExecuteRound(round.PlayerA, round.PlayerB, round.PlayerC, round.PlayerD, firstCardOfRound);
                counter     = counter + 3;
                //Choose a random card for the player to lay

                if (counter < 52)
                {
                    int randomIndex = random.RandomNumber(0, playedRound.PlayerWhoLostRound.PlayerCards.Count - 1);
                    firstCardOfRound = playedRound.PlayerWhoLostRound.PlayerCards[randomIndex];
                    if (playedRound.PlayerWhoLostRound.PlayerName == round.PlayerA.PlayerName)
                    {
                        cardsPlayed.cardDeck.Add(FindAndPlayCard(round.PlayerA, firstCardOfRound));
                    }
                    else if (playedRound.PlayerWhoLostRound.PlayerName == round.PlayerB.PlayerName)
                    {
                        cardsPlayed.cardDeck.Add(FindAndPlayCard(round.PlayerB, firstCardOfRound));
                    }
                    else if (playedRound.PlayerWhoLostRound.PlayerName == round.PlayerC.PlayerName)
                    {
                        cardsPlayed.cardDeck.Add(FindAndPlayCard(round.PlayerC, firstCardOfRound));
                    }
                    else if (playedRound.PlayerWhoLostRound.PlayerName == round.PlayerD.PlayerName)
                    {
                        cardsPlayed.cardDeck.Add(FindAndPlayCard(round.PlayerD, firstCardOfRound));
                    }
                    counter = counter + 1;
                }
            }
            return(round);
        }