blob: 9e1204a4143dbf00dacb6d0196ca41ece1d70514 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <algorithm>
#include <random>
#include "deck.h"
namespace wcards {
Deck::Deck() : pos(0) {
for (unsigned i = 0; i < 52; ++i) {
cards[i] = i + 1;
}
shuffle();
}
Card Deck::draw(void) {
if (pos == 52) return Card();
else return Card(cards[pos++]);
}
void Deck::shuffle(void) {
std::default_random_engine engine(std::random_device{}());
std::shuffle(cards, cards + 52, engine);
}
} // namespace wcards
|