/// <summary> /// Constructor with random number generator dependency. /// Since no cards are specified, it creates a default list of cards for the deck. /// </summary> /// <param name="random">Random number generator.</param> public Deck(IRandomNext random) { Random = random; foreach (var suit in new Suit[] { Suit.Club, Suit.Diamond, Suit.Heart, Suit.Spade }) { foreach (var rank in new Rank[] { Rank.Two, Rank.Three, Rank.Four, Rank.Five, Rank.Six, Rank.Seven, Rank.Eight, Rank.Nine, Rank.Ten, Rank.Jack, Rank.Queen, Rank.King, Rank.Ace }) { Cards.Add(new Card(suit, rank)); } } }
/// <summary> /// Constructor that takes some cards and a random number generator. /// </summary> /// <param name="cards">Cards that will form the deck.</param> /// <param name="random">Random number generator.</param> public Deck(IEnumerable <Card> cards, IRandomNext random) { Random = random; Cards.AddRange(cards); }