Eile Mit Weile
Loading...
Searching...
No Matches
Dice.hpp
1#ifndef EILEMITWEILE_DICE_HPP
2#define EILEMITWEILE_DICE_HPP
3#include "common/serialization/unique_serializable.hpp"
4#include "common/serialization/serializable_value.hpp"
5#include <random>
6#include <utility>
7
17 public:
18 Dice();
19 Dice(std::string id, unsigned number, unsigned six_counter);
20 ~Dice();
21 unsigned RollDice();
22 void ResetSixCounter();
23 unsigned GetSixCounter();
24 unsigned GetNumber();
25 static Dice* FromJson(const rapidjson::Value& json);
27 void WriteIntoJson(rapidjson::Value& json,
28 rapidjson::Document::AllocatorType& allocator) const override;
31 private:
34 std::random_device _rd;
35 std::mt19937 _gen = std::mt19937(_rd());
36 std::uniform_int_distribution<> _distr = std::uniform_int_distribution<>(1, 6);
40};
41
42
43#endif //EILEMITWEILE_DICE_HPP
wrapper of a simple RNG with a uniform distribution from 1 to 6
Definition Dice.hpp:16
static Dice * FromJson(const rapidjson::Value &json)
Definition Dice.cpp:48
void WriteIntoJson(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override
Definition Dice.cpp:57
void ResetSixCounter()
Definition Dice.cpp:36
SerializableValue< unsigned > * _number
Definition Dice.hpp:37
std::uniform_int_distribution _distr
Definition Dice.hpp:36
unsigned RollDice()
Definition Dice.cpp:27
Dice(std::string id, SerializableValue< unsigned int > *number, SerializableValue< unsigned int > *six_counter)
unsigned GetSixCounter()
Definition Dice.cpp:40
SerializableValue< unsigned > * _six_counter
Definition Dice.hpp:38
std::random_device _rd
Definition Dice.hpp:34
unsigned GetNumber()
Definition Dice.cpp:44
std::mt19937 _gen
Definition Dice.hpp:35
A serializable value, used for writing values into json.
Definition serializable_value.hpp:28
Used to serialize game_state objects that need to be identifiable by a unique id.
Definition unique_serializable.hpp:14