CardDeck::CardDeck(int numberOfDecks) : _current_pos(0), _numberOfDecks(numberOfDecks) { for(int i = 0; i < _numberOfDecks; i++) { for(int suit = Card::Suit_Min; suit <= Card::Suit_Max; suit++) { for(int val = Card::Value_Min; val <= Card::Value_Max; val++) { card_ptr_t card_ptr(new Card(static_cast<Card::card_suit_t>(suit), static_cast<Card::card_value_t>(val))); _cards.push_back(card_ptr); } } } }
card_ptr Deck::GetCardAt(int index) const { if (index < Cards.size()) return Cards[index]; return card_ptr(); }