44 lines
670 B
C++
44 lines
670 B
C++
#ifndef CARD_HPP_
|
|
#define CARD_HPP_
|
|
|
|
class Card
|
|
{
|
|
public:
|
|
enum rank {ACE = 1, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING};
|
|
enum suit {CLUBS, DIAMONDS, HEARTS, SPADES};
|
|
|
|
Card(rank r = ACE, suit s = SPADES, bool ifu = true): m_Rank(r), m_Suit(s), m_IsFaceUp(ifu) { }
|
|
|
|
int GetValue() const;
|
|
void Flip();
|
|
|
|
friend std::ostream& operator<<(std::ostream& s, const Card& aCard);
|
|
private:
|
|
rank m_Rank;
|
|
suit m_Suit;
|
|
bool m_IsFaceUp;
|
|
};
|
|
|
|
int Card::GetValue() const
|
|
{
|
|
int value = 0;
|
|
if (m_IsFaceUp)
|
|
{
|
|
value = m_Rank;
|
|
if (value > 10)
|
|
{
|
|
value = 10;
|
|
}
|
|
}
|
|
return value;
|
|
}
|
|
|
|
void Card::Flip()
|
|
{
|
|
m_IsFaceUp = !m_IsFaceUp;
|
|
}
|
|
|
|
|
|
|
|
#endif
|