home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / CARDS.HPP < prev    next >
C/C++ Source or Header  |  1997-07-05  |  1KB  |  55 lines

  1. // +++Date last modified: 05-Jul-1997
  2.  
  3. /*
  4. **  CARDS.HPP - Declare card classes
  5. **
  6. **  public domain by Bob Stout
  7. */
  8.  
  9. #ifndef CARDS__HPP
  10. #define CARDS__HPP
  11.  
  12. const int Card_Error = -1;
  13. const int Deck_Size  = 52;
  14.  
  15. typedef enum {Rank_Error = Card_Error, Ace = 1, Deuce, Trey, Spot_4, Spot_5,
  16.               Spot_6, Spot_7, Spot_8, Spot_9, Spot_10, Jack = 11, Queen = 12,
  17.               King = 13} cardRank;
  18.  
  19. typedef enum {Suit_Error = Card_Error, Diamond, Club, Heart, Spade} cardSuit;
  20.  
  21.  
  22. class card
  23. {
  24. private:
  25.       cardRank rank_;
  26.       cardSuit suit_;
  27.  
  28. public:
  29.       card(void);
  30.       card(cardSuit s, cardRank r);
  31.       cardRank rank(void);
  32.       cardSuit suit(void);
  33.       void get_card(cardSuit &s, cardRank &r);
  34.       char *rankText(void);
  35.       char *suitText(void);
  36.       void set_rank(cardRank r);
  37.       void set_suit(cardSuit s);
  38.       void set_card(cardSuit s, cardRank r);
  39. };
  40.  
  41. class deck
  42. {
  43. private:
  44.       class card card_[Deck_Size];
  45.       unsigned top;
  46.  
  47. public:
  48.       deck(void);
  49.       void shuffle(void);
  50.       void deal(class card &c);
  51.       int cards_left(void);
  52. };
  53.  
  54. #endif // CARDS__HPP
  55.