#include using std::cout; using std::left; using std::right; #include using std::setw; #include // prototype for rand and srand using std::rand; using std::srand; #include using std::time; #include "DeckOfCards.h" //DeckOfCards default constructor initializes deck to 0s DeckOfCards::DeckOfCards() { //loop through rows for (int row = 0; row <= 3; row++) {// loop through columns for (int column = 0; column <= 14; column++) {// initialize elements to 0s deck[row][column] = 0; } // end inner for } // end outer for // seed random number generator srand(static_cast< unsigned >(time(0))); } // end DeckOfCards default constructor // DeckOfCards member function shuffle() void DeckOfCards::shuffle() { int row; // represents suit value of card int column; // represents face value of card // for each of the 52 cards, choose a slot of the deck randomly for (int card = 1; card <= 52; card++) { do // choose a new random location until unoccupied slot is found { row = rand()% 4;// randomly select the row column = rand() % 13; // randomly select the column } while (deck[row][column] != 0); // end do...while loop // place card number in chosen slot of deck deck[row][column]=card; } // end for loop } // end shuffle function // DeckOfCards member function deal() void DeckOfCards::deal() { // initialize suit array static const char *suit[4] = { "Hearts","Diamonds","Clubs","Spades"}; // initialize face array static const char *face[13] = { "Ace","Deuce","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Jack","Queen","King"}; // for each of the 52 cards for ( int card = 1; card <= 52; card++) { // loop rows for (int row = 1; row <= 3; row++) { // loop columns for (int column = 0; column <= 12; column++) { if (deck[row][column] == card) { cout << setw(5) << right << face[column] << " of " << setw(8) << left << suit[row] << (card % 2 == 0 ? '\n' : '\t'); } // end if } // end innermost for } // end inner for } // end outer for } // end function deal()