Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
CardDecks.cpp
Go to the documentation of this file.
1#include "CardDecks.hpp"
2
3#include <cstddef>
4#include <utility>
5
7{
8 namespace
9 {
10 void shuffleCardDeck(
12 std::uint8_t firstCardOffset,
13 std::mt19937& randomGenerator)
14 {
15 // ShuffleCardDeck() original :
16 //
17 // 1. cartes dans l'ordre
18 // 2. pour chaque carte, échange avec rand()%count.
19
20 for (std::uint8_t i = 0;
21 i < deck.cardCount;
22 ++i)
23 {
24 deck.cardPile[i] =
25 static_cast<std::uint8_t>(
27 );
28 }
29
30 for (std::uint8_t i = 0;
31 i < deck.cardCount;
32 ++i)
33 {
34 const std::size_t randomIndex =
36 deck.cardCount;
37
38 std::swap(
39 deck.cardPile[i],
40 deck.cardPile[randomIndex]
41 );
42 }
43 }
44 }
45
46
49 std::mt19937& randomGenerator)
50 {
51 // L'original initialise Community Chest EN PREMIER.
52
55 static_cast<std::size_t>(
57 )
58 ];
59
60 community = {};
61 community.cardCount = CommunityCount;
62 community.jailOwner = NobodyPlayer;
63 community.jailOfferedInTradeTo =
65
70 );
71
72
73 // Puis Chance.
74
77 static_cast<std::size_t>(
79 )
80 ];
81
82 chance = {};
83 chance.cardCount = ChanceCount;
84 chance.jailOwner = NobodyPlayer;
85 chance.jailOfferedInTradeTo =
87
89 chance,
92 );
93 }
94}
unsigned index
void initializeDecks(GameState &state, std::mt19937 &randomGenerator)
Definition CardDecks.cpp:47
constexpr std::uint8_t CommunityCount
Definition CardTypes.hpp:52
constexpr std::uint8_t CommunityFirst
Definition CardTypes.hpp:51
const GameState & state()
constexpr PlayerNumber NobodyPlayer
Definition RuleTypes.hpp:16
constexpr std::uint8_t ChanceFirst
Definition CardTypes.hpp:48
constexpr std::uint8_t ChanceCount
Definition CardTypes.hpp:49
std::array< CardDeck, static_cast< std::size_t >(DeckType::Count) > cards