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

63 lines
2.0 KiB
C++

//
// Created by alex on 7/14/25.
//
#include "Card.h"
Card::Card(Suit s, Rank r) : suit(s), rank(r) {
value = static_cast<int>(r) + 1;
}
Suit Card::getSuit() const {
return suit;
}
Rank Card::getRank() const {
return rank;
}
int Card::getValue() const {
return value;
}
// Getters
// Setter for changing value to 1 for ace?
// Overload operator<<
std::ostream& operator<<(std::ostream& os, const Card& card) {
std::string rankString;
std::string clubString;
switch (card.getRank()) {
case Rank::Ace: rankString = "Ace"; break;
case Rank::Jack: rankString = "Jack"; break;
case Rank::Queen: rankString = "Queen"; break;
case Rank::King: rankString = "King"; break;
default: rankString = std::to_string(card.getValue()); break;
}
switch (card.getRank()) {
case Rank::Ace: rankString = "Ace"; break;
case Rank::Two: rankString = "2"; break;
case Rank::Three: rankString = "3"; break;
case Rank::Four: rankString = "4"; break;
case Rank::Five: rankString = "5"; break;
case Rank::Six: rankString = "6"; break;
case Rank::Seven: rankString = "7"; break;
case Rank::Eight: rankString = "8"; break;
case Rank::Nine: rankString = "9"; break;
case Rank::Ten: rankString = "10"; break;
case Rank::Jack: rankString = "Jack"; break;
case Rank::Queen: rankString = "Queen"; break;
case Rank::King: rankString = "King"; break;
}
switch (card.getSuit()) {
case Suit::Clubs: clubString = "Clubs"; break;
case Suit::Diamonds: clubString = "Diamonds"; break;
case Suit::Hearts: clubString = "Hearts"; break;
case Suit::Spades: clubString = "Spades"; break;
}
os << rankString << " of " << clubString;
return os;
}