// // Created by alex on 7/14/25. // #ifndef CARD_H #define CARD_H #include #include enum class Suit { Clubs, Diamonds, Hearts, Spades }; enum class Rank { Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King }; class Card { public: Card(Suit s, Rank r); // Getters Suit getSuit() const; Rank getRank() const; int getValue() const; friend std::ostream& operator<<(std::ostream& os, const Card& card); // These arrays exist to store all types of cards static std::array constexpr Suits = {Suit::Clubs, Suit::Diamonds, Suit::Hearts, Suit::Spades}; static std::array constexpr Ranks = {Rank::Ace, Rank::Two, Rank::Three, Rank::Four, Rank::Five, Rank::Six, Rank::Seven, Rank::Eight, Rank::Nine, Rank::Ten, Rank::Jack, Rank::Queen, Rank::King}; private: Suit suit; Rank rank; int value; }; #endif //CARD_H