-
Notifications
You must be signed in to change notification settings - Fork 0
/
Card.h
68 lines (44 loc) · 1.49 KB
/
Card.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//
// Jack Bennett 0370668//
//
#ifndef HEARTS_CARD_H
#define HEARTS_CARD_H
#include <iostream>
#include <string>
class Card {
public:
enum Suit{Spades, Hearts, Clubs, Diamonds, None}; //none is used for Getcard method
static const std::string SuitName; //variable for Suit name
static const int numSuits; //variable for number of suits
static const int numCards; //variable for number of cards
//Ranking of cards
enum Rank{Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten,
Jack, Queen, King, Ace}; //Declaring the rank of the card
static const std::string RankName; //variable for names of rank of cards
static const int numRanks; //variable for number of ranks
//Defualt constructor
Card();
//constructor for rank and suit
Card(Rank r, Suit s);
//constructor taking string as input
Card(std::string sCard);
//Deconstructor
~Card();
//getters
Rank getRank() const; //gets rank of card
Suit getSuit() const; //gets suit of card
int getValueHeart() const; //gets value of card for hearts
//checks if card is valid
static bool isValid(std::string v);
private:
//variables for rank and suit
Rank rank;
Suit suit;
int valueHeart;
};
//overload operator for printing the card
std::ostream& operator<<(std::ostream& os, const Card& c);
//overload operator for comparing cards
// Overloaded operators: equlity
extern bool operator== (const Card& c1, const Card& c2);
#endif //HEARTS_CARD_H