/// <summary>
    /// Distribute appropriate cards to all players.
    /// </summary>
    public void DistributeCards()
    {
        List <Card> availableCards = CardsDAO.GetCards(NbPlayers, Age);

        if (Age == 3)
        {
            availableCards = this.RemoveExtraGuildCards(availableCards);
        }

        Random rand = new Random();

        foreach (Player player in this.Players)
        {
            for (int i = 0; i < GameConsts.STARTING_CARDS_NUMBER; i++)
            {
                Card nextCard = availableCards.ElementAt(rand.Next(availableCards.Count));
                player.Hand.Add(nextCard);
                availableCards.Remove(nextCard);
            }
        }
    }