63 lines
2.0 KiB
C++
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;
|
|
}
|
|
|