ALERT!
Click here to register with a few steps and explore all our cool stuff we have to offer!

Jump to content



Photo

C++ A Portable Card Deck Class With Shuffling Source Code


  • Please log in to reply
C++ A Portable Card Deck Class With Shuffling Source Code

#1

cagri1bas2
cagri1bas2
    Offline
    0
    Rep
    10
    Likes

    Member

Posts: 33
Threads: 8
Joined: Aug 22, 2015
Credits: 0
Eight years registered
#1
/* **************************************** */
/* Deck of Cards                            */
/* created by William Nevin                 */
/* 12/12/05 20:12 PM                        */
/*        **************************        */
/* Shuffle(passes) - Iterates through the   */
/*             deck echanging each card     */
/*             with randomly chosen card    */
/*             in the deck.                 */
/* Deal()    - Deals a single card off of   */
/*             the top of the deck.         */
/* Collect() - Resets the deck size to a    */
/*             full deck.                   */
/* Deck Size - Number of decks being used   */
/* **************************************** */
 
#ifndef StdCardDeckH
#define StdCardDeckH
 
#include <string>
#include <sstream>
#include <algorithm>
 
const char HEART   = 0x03;   // May Not Work on
const char DIAMOND = 0x04;   // certain systems
const char CLUB    = 0x05;   // These are DOS standard
const char SPADE   = 0x06;   // ASCII characters
 
struct Card {
    char Suit;
    int trueVal;
    std::string faceVal;
    std::string fullName;
};
 
class Deck
{
  public:
    Deck(int DeckSize);
   ~Deck(void);
 
    void Shuffle(int passes);
    Card Deal(void);
    void Collect(void);
 
  private:
    Card *CardDeck;
    int CurrCard;
    const int DECK_SIZ;
};
 
Deck::Deck(int DeckSize = 1) : DECK_SIZ( DeckSize ) {
  std::ostringstream sConv;
  int CurrSuit, CurrDeck;
 
  CardDeck = new Card[52 * DECK_SIZ];
  for (CurrDeck = 0; CurrDeck < DECK_SIZ; CurrDeck++) {
    for (CurrSuit = 0; CurrSuit < 4; CurrSuit++) {
      for (CurrCard = 0; CurrCard < 13; CurrCard ++) {
        if ((CurrCard + 1) % 13 == 1) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'A';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "Ace of ";
           }
        else if ((CurrCard + 1) % 13 == 11) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'J';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "Jack of ";
           }
        else if ((CurrCard + 1) % 13 == 12) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'Q';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "Queen of ";
           }
        else if ((CurrCard + 1) % 13 == 0) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'K';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "King of ";
           }
        else {
           sConv << (CurrCard + 1) % 13;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = sConv.str();
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = sConv.str() + " of ";
           sConv.str("");
        }
        if (CurrSuit == 0) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = HEART;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Hearts";
           }
        else if (CurrSuit == 1) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = DIAMOND;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Diamonds";
           }
        else if (CurrSuit == 2) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = CLUB;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Clubs";
           }
        else {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = SPADE;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Spades";
           }
        if ((CurrCard + 1) % 13 < 10)
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].trueVal = (CurrCard + 1) % 13;
        else
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].trueVal =  10;
      }
    }
  }
  CurrCard = 0;
}
 
Deck::~Deck(void) {
  delete[] CardDeck;
}
 
void Deck::Shuffle(int passes = 1) {
  int currShuffle;
  for (currShuffle = 0; currShuffle < passes; currShuffle++)
      std::random_shuffle(CardDeck, CardDeck+DECK_SIZ*52);
}
 
Card Deck::Deal(void) {
  if ( CurrCard < DECK_SIZ * 52)
     return CardDeck[CurrCard++];
}
 
void Deck::Collect(void) {
   CurrCard = 0;
}
 
#endif /* StdCardDeckH */

  • 1

#2

3530626
3530626
    Offline
    0
    Rep
    20
    Likes

    Member

Posts: 25
Threads: 0
Joined: Sep 11, 2015
Credits: 0
Eight years registered
#2

Perfect


  • 0

i love you chụt chụt  ;)  ;)  ;)  ;)  ;)  ;)


#3

gradnate
gradnate
    Offline
    0
    Rep
    9
    Likes

    New Member

Posts: 24
Threads: 1
Joined: Sep 12, 2015
Credits: 0
Eight years registered
#3

 

/* **************************************** */
/* Deck of Cards                            */
/* created by William Nevin                 */
/* 12/12/05 20:12 PM                        */
/*        **************************        */
/* Shuffle(passes) - Iterates through the   */
/*             deck echanging each card     */
/*             with randomly chosen card    */
/*             in the deck.                 */
/* Deal()    - Deals a single card off of   */
/*             the top of the deck.         */
/* Collect() - Resets the deck size to a    */
/*             full deck.                   */
/* Deck Size - Number of decks being used   */
/* **************************************** */
 
#ifndef StdCardDeckH
#define StdCardDeckH
 
#include <string>
#include <sstream>
#include <algorithm>
 
const char HEART   = 0x03;   // May Not Work on
const char DIAMOND = 0x04;   // certain systems
const char CLUB    = 0x05;   // These are DOS standard
const char SPADE   = 0x06;   // ASCII characters
 
struct Card {
    char Suit;
    int trueVal;
    std::string faceVal;
    std::string fullName;
};
 
class Deck
{
  public:
    Deck(int DeckSize);
   ~Deck(void);
 
    void Shuffle(int passes);
    Card Deal(void);
    void Collect(void);
 
  private:
    Card *CardDeck;
    int CurrCard;
    const int DECK_SIZ;
};
 
Deck::Deck(int DeckSize = 1) : DECK_SIZ( DeckSize ) {
  std::ostringstream sConv;
  int CurrSuit, CurrDeck;
 
  CardDeck = new Card[52 * DECK_SIZ];
  for (CurrDeck = 0; CurrDeck < DECK_SIZ; CurrDeck++) {
    for (CurrSuit = 0; CurrSuit < 4; CurrSuit++) {
      for (CurrCard = 0; CurrCard < 13; CurrCard ++) {
        if ((CurrCard + 1) % 13 == 1) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'A';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "Ace of ";
           }
        else if ((CurrCard + 1) % 13 == 11) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'J';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "Jack of ";
           }
        else if ((CurrCard + 1) % 13 == 12) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'Q';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "Queen of ";
           }
        else if ((CurrCard + 1) % 13 == 0) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = 'K';
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = "King of ";
           }
        else {
           sConv << (CurrCard + 1) % 13;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].faceVal = sConv.str();
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName = sConv.str() + " of ";
           sConv.str("");
        }
        if (CurrSuit == 0) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = HEART;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Hearts";
           }
        else if (CurrSuit == 1) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = DIAMOND;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Diamonds";
           }
        else if (CurrSuit == 2) {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = CLUB;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Clubs";
           }
        else {
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].Suit = SPADE;
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].fullName += "Spades";
           }
        if ((CurrCard + 1) % 13 < 10)
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].trueVal = (CurrCard + 1) % 13;
        else
           CardDeck[CurrCard + (CurrSuit * 13) + (CurrDeck * 52)].trueVal =  10;
      }
    }
  }
  CurrCard = 0;
}
 
Deck::~Deck(void) {
  delete[] CardDeck;
}
 
void Deck::Shuffle(int passes = 1) {
  int currShuffle;
  for (currShuffle = 0; currShuffle < passes; currShuffle++)
      std::random_shuffle(CardDeck, CardDeck+DECK_SIZ*52);
}
 
Card Deck::Deal(void) {
  if ( CurrCard < DECK_SIZ * 52)
     return CardDeck[CurrCard++];
}
 
void Deck::Collect(void) {
   CurrCard = 0;
}
 
#endif /* StdCardDeckH */

 

wtf


  • 0

#4

bluecat29
bluecat29
    Offline
    0
    Rep
    7
    Likes

    New Member

Posts: 23
Threads: 0
Joined: Sep 11, 2015
Credits: 0
Eight years registered
#4

Nulled.IO is a cracking community where you can find tons of great leaks, make new friends, participate in active discussions and much more.


  • 0

#5

pruned_83927637
pruned_83927637
    Offline
    0
    Rep
    11
    Likes

    New Member

  • PipPip
Posts: 21
Threads: 0
Joined: Sep 13, 2015
Credits: 0
Eight years registered
#5

nice


  • 2

#6

pruned_57632262
pruned_57632262
    Offline
    0
    Rep
    8
    Likes

    Member

  • PipPipPip
Posts: 26
Threads: 0
Joined: Sep 13, 2015
Credits: 0
Eight years registered
#6

ty


  • 0

#7

pruned_35894687
pruned_35894687
    Offline
    0
    Rep
    5
    Likes

    New Member

  • PipPip
Posts: 15
Threads: 0
Joined: Sep 13, 2015
Credits: 0
Eight years registered
#7

ty


  • 0

#8

anhnt7
anhnt7
    Offline
    0
    Rep
    -1
    Likes

    New Member

Posts: 12
Threads: 0
Joined: Sep 10, 2015
Credits: 0
Eight years registered
#8

nice 


  • 0

#9

Selocanli
Selocanli
    Offline
    0
    Rep
    0
    Likes

    New Member

Posts: 22
Threads: 0
Joined: Sep 15, 2015
Credits: 0
Eight years registered
#9

Thank you :)


  • 0

#10

niizuma
niizuma
    Offline
    2
    Rep
    7
    Likes

    New Member

Posts: 20
Threads: 0
Joined: May 21, 2015
Credits: 0
Eight years registered
#10

goodjob


  • 1


 Users browsing this thread: