Added the blackjack lib

This commit is contained in:
2023-06-13 09:33:43 +02:00
parent 4d41c4618e
commit ca3142a6cd
8 changed files with 385 additions and 0 deletions

30
blackjack/Deck.cpp Normal file
View File

@@ -0,0 +1,30 @@
#include "Deck.hpp"
Deck::Deck(void)
{
for (Iterable<Card::Suit> suit; suit < Card::Suit::end; suit++)
{
for (Iterable<Card::Rank> rank = Card::Rank::ACE; rank < Card::Rank::end; rank++)
{
cards_.push_back(std::make_unique<Card>(rank.val(), suit.val()));
}
}
}
void Deck::shuffledeck(void)
{
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(cards_.begin(), cards_.end(), g);
}
std::unique_ptr<Card> Deck::drawCard(void)
{
if (cards_.empty())
{
return nullptr;
}
std::unique_ptr<Card> card = std::move(cards_.back());
cards_.pop_back();
return card;
}