diff options
| author | Aiden Woodruff <aiden@aidenw.net> | 2024-12-14 01:08:52 -0500 |
|---|---|---|
| committer | Aiden Woodruff <aiden@aidenw.net> | 2024-12-14 01:08:52 -0500 |
| commit | 53afb8b12ad5ef4eadefe8825d94a8dfdebad0e8 (patch) | |
| tree | 20d44962bc6b0c29a4b0835448b98a5538505ede | |
| parent | 7e72444c61797691fc33acc5fd2ff5f99bdbad1b (diff) | |
| download | wcards-53afb8b12ad5ef4eadefe8825d94a8dfdebad0e8.tar.gz wcards-53afb8b12ad5ef4eadefe8825d94a8dfdebad0e8.tar.bz2 wcards-53afb8b12ad5ef4eadefe8825d94a8dfdebad0e8.zip | |
shuffle deck by default
Signed-off-by: Aiden Woodruff <aiden@aidenw.net>
| -rw-r--r-- | deck.cc | 10 | ||||
| -rw-r--r-- | deck.h | 1 |
2 files changed, 10 insertions, 1 deletions
| @@ -1,3 +1,6 @@ | |||
| 1 | #include <algorithm> | ||
| 2 | #include <random> | ||
| 3 | |||
| 1 | #include "deck.h" | 4 | #include "deck.h" |
| 2 | 5 | ||
| 3 | namespace wcards { | 6 | namespace wcards { |
| @@ -5,9 +8,14 @@ namespace wcards { | |||
| 5 | for (unsigned i = 0; i < 52; ++i) { | 8 | for (unsigned i = 0; i < 52; ++i) { |
| 6 | cards[i] = i + 1; | 9 | cards[i] = i + 1; |
| 7 | } | 10 | } |
| 11 | shuffle(); | ||
| 8 | } | 12 | } |
| 9 | Card Deck::draw(void) { | 13 | Card Deck::draw(void) { |
| 10 | if (pos == 52) return Card(); | 14 | if (pos == 52) return Card(); |
| 11 | else return Card(pos++); | 15 | else return Card(cards[pos++]); |
| 16 | } | ||
| 17 | void Deck::shuffle(void) { | ||
| 18 | std::default_random_engine engine(std::random_device{}()); | ||
| 19 | std::shuffle(cards, cards + 52, engine); | ||
| 12 | } | 20 | } |
| 13 | } // namespace wcards | 21 | } // namespace wcards |
| @@ -9,6 +9,7 @@ namespace wcards { | |||
| 9 | Deck(); | 9 | Deck(); |
| 10 | Card draw(void); | 10 | Card draw(void); |
| 11 | private: | 11 | private: |
| 12 | void shuffle(void); | ||
| 12 | unsigned cards[52], pos; | 13 | unsigned cards[52], pos; |
| 13 | }; | 14 | }; |
| 14 | } // namespace wcards | 15 | } // namespace wcards |
