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

53 lines
832 B
C++

//
// Created by alex on 7/14/25.
//
#include "Deck.h"
Deck::Deck() : Deck(false) { }
Deck::Deck(bool shuffled) {
initialize_deck();
if (shuffled) {
shuffle();
}
cards_in_deck = deck.size();
}
void Deck::initialize_deck() {
for (auto r : Card::Ranks) {
for (auto c : Card::Suits) {
deck.emplace_back(c, r);
}
}
}
void Deck::print_deck() {
std::cout << deck.size() << std::endl;
for (auto c : deck) {
std::cout << c << std::endl;
}
}
void Deck::shuffle() {
std::random_device rd;
std::mt19937 g(rd());
std::ranges::shuffle(deck, g);
}
/**
*
* @return The card drawn from the top of the deck
*/
Card Deck::draw() {
const Card temp = deck.at(cards_in_deck - 1);
deck.pop_back();
cards_in_deck--;
return temp;
}