deck::pr_deck()
pips
card
deck class
//card output. #include <iostream.h> char pips_symbol[14] = { '?', 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K' }; char suit_symbol[4] = { 'c', 'd', 'h', 's' }; enum suit { clubs, diamonds, hearts, spades }; class pips { public: void assign(int n) { p = n % 13 + 1; } friend ostream& operator<<(ostream& out, pips x); private: int p; };
class card { public: suit s; pips p; void assign(int n) { cd = n; s = suit(n / 13); p.assign(n); } friend ostream& operator<<(ostream& out, card cd); private: int cd; //a cd is from 0 to 51 }; class deck { public: void init_deck(); void shuffle(); void deal(int, int, card*); void pr_deck(); private: card d[52]; };
ostream& operator<<(ostream& out, pips x){ return (out << pips_symbol[x.p]); } ostream& operator<<(ostream& out, card cd) { return (out << cd.p << suit_symbol[cd.s] << " "); } void deck::pr_deck() { for (int i = 0; i < 52; ++i) { if (i % 13 == 0) //13 cards to a line cout << endl; cout << d[i]; } }
cards
deck