#include #include // needed for rand() function using namespace std; const char* const value_name[13] = {"two","three","four","five","six","seven","eight","nine","ten","jack","queen","king","ace"}; const char* const suit_name[4] = {"clubs","diamonds","hearts","spades"}; const unsigned short DeckSize = 52; class Card { public: enum suitType { clubs, diamonds, hearts, spades }; Card (); void assign(unsigned short); int get_value(void) const { return value; } int get_suit(void) const { return suit; } void print(void) const; private: unsigned short value; suitType suit; }; Card::Card() : value(0), suit(clubs) {} void Card::assign(unsigned short x) { value = x % 13; suit = (suitType) (x % 4); } void Card::print(void) const { cout << (value_name[value]) << " of " << (suit_name[suit]) << endl; } class Deck { public: Deck(); void print(void) const; private: Card card[DeckSize]; void shuffle(void); }; Deck::Deck() { unsigned short i; for (i = 0; i < DeckSize; i++) card[i].assign(i); shuffle(); } void Deck::shuffle(void) { unsigned short i; unsigned short k; Card temp; cout << "I am shuffling the Deck\n"; for (i = 0; i < DeckSize; i++) { k = rand() % DeckSize; temp = card[i]; card[i] = card[k]; card[k] = temp; } } void Deck::print(void) const { for (unsigned short i = 0; i < DeckSize; i++) card[i].print(); } int main(void) { Deck poker; poker.print(); return 0; }