aboutsummaryrefslogtreecommitdiffstats
path: root/deck.cc
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