سلام.
دوستان تو مساله مربوط به برزدن کارتها این تیکه از برنامه رو که با قرمز مشخص کردم متوجه نمیشم. لطفا این یه تیکه از برنامه روشفاف برام توضیح میدین .
کد:
/ DeckOfCards class definition
/DeckOfCards.h
class DeckOfCards
{
public:
DeckOfCards(); // constructor initializes deck
void shuffle(); // shuffles cards in deck
void deal(); // deals cards in deck
private:
int deck[ 4 ][ 13 ]; // represents deck of cards
}; // end class DeckOfCards
// Fig. 8.26: DeckOfCards.cpp
// Member-function definitions for class DeckOfCards that simulates
// the shuffling and dealing of a deck of playing cards.
#include <iostream>
using std::cout;
using std::left;
using std::right;
#include <iomanip>
using std::setw;
#include <cstdlib> // prototypes for rand and srand
using std::rand;
using std::srand;
#include <ctime> // prototype for time
using std::time;
#include "DeckOfCards.h" // DeckOfCards class definition
// DeckOfCards default constructor initializes deck
DeckOfCards::DeckOfCards()
{
// loop through rows of deck
for ( int row = 0; row <= 3; row++ )
{
// loop through columns of deck for current row
for ( int column = 0; column <= 12; column++ )
{
deck[ row ][ column ] = 0; // initialize slot of deck to 0
} // end inner for
} // end outer for
srand( time( 0 ) ); // seed random number generator
} // end DeckOfCards default constructor
// shuffle cards in deck
void DeckOfCards::shuffle()
{
int row; // represents face value of card
int column; // represents numeric 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 an 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
// place card number in chosen slot of deck
deck[ row ][ column ] = card;
} // end for
} // end function shuffle
// deal cards in deck
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 through rows of deck
for ( int row = 0; row <= 3; row++ )
{
// loop through columns of deck for current row
for ( int column = 0; column <= 12; column++ )
{
// if slot contains current card, display card
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
// Fig. 8.27: fig08_27.cpp
// Card shuffling and dealing program.
#include "DeckOfCards.h" // DeckOfCards class definition
int main()
{
DeckOfCards deckOfCards; // create DeckOfCards object
deckOfCards.shuffle(); // shuffle the cards in the deck
deckOfCards.deal(); // deal the cards in the deck
return 0; // indicates successful termination
} // end main