Files
Blackjack/Card.h
2025-07-25 10:47:31 -07:00

43 lines
937 B
C++

//
// Created by alex on 7/14/25.
//
#ifndef CARD_H
#define CARD_H
#include <array>
#include <iostream>
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<Suit, 4> constexpr Suits = {Suit::Clubs, Suit::Diamonds, Suit::Hearts, Suit::Spades};
static std::array<Rank, 13> 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