object lab

Create a standard deck of 52 playing cards and list those cards on the screen, columns makes my life easier :-) Pause or "press Enter" after the unshuffled deck is displayed. The display might look something like.
"Shuffle" the deck and list the shuffled deck on the screen. random_shuffle from <algorithm> will work on a vector of Cards
Sort (by rank) and evaluate evaluate the first 5 cards of the deck as a 'hand'. Print the unsorted, then the sorted hand.
a pair (say the card rank, like Pair of Queens)
two pair (say something like Pair of Queens and Pair of Twos)
three of a kind (say something like Three Kings)
full house (say something like Full house, Jacks over fours)
straight (say Ace-high straight) A straight is all 5 cards in rank order, ace can be high or low
four of a kind
flush (say something like spades flush)
Ideas:

create a Card class with an internal 'Rank' (A, 2, 3, 4, ..) and 'Suit' (spades, diamonds ...)

Here's one possible idea for a card class (Card.h)

#ifndef CARD_H
#define CARD_H

#include <string>

using namespace std;

class Card
{
public:
Card();

// set and get the rank, 2=2, 3=3, ... 10=10, 11=J, 12=Q, 13=K, 14=A
void setRank(int r);
int getRank();

// set and get the suit, 1=Spades, 2=Hearts, ...
void setSuit(int r);
int getSuit();

// for debugging, print the suit and rand as integers
void print();

// return the rank and suit as a 'nice' looking string
string toString();

// if you want to use sort() in the STL
bool operator<(const Card &c) const {return myRank < c.myRank;}

private:
int myRank;
int mySuit;
};

#endif // CARD_H



If you want to use the builtin sort alogrithm with the above class, use:

vector<Card> hand;

/// make sure to put cards in the hand here!

sort(hand.begin(), hand.end());


For those who like icons, check out the following:

int main()
{
cout << "\003" << endl;
cout << "\004" << endl;
cout << "\005" << endl;
cout << "\006" << endl;
return 0;
}


Topic archived. No new replies allowed.