aboutsummaryrefslogtreecommitdiff
path: root/src/random_generator.cpp
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-02-13 20:54:02 +0100
committerHampusM <hampus@hampusmat.com>2022-02-13 20:54:02 +0100
commit176d6141c87a180b251bacaee656808bad17498b (patch)
tree9d3893014eeb8be293cf8928044925c379739d24 /src/random_generator.cpp
parentb0c265ee3d94921f55266a679d3801a4d2b4505b (diff)
refactor: add random number generation abstraction
Diffstat (limited to 'src/random_generator.cpp')
-rw-r--r--src/random_generator.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/random_generator.cpp b/src/random_generator.cpp
new file mode 100644
index 0000000..1f17a88
--- /dev/null
+++ b/src/random_generator.cpp
@@ -0,0 +1,20 @@
+#include "random_generator.hpp"
+
+RandomNumberGenerator::RandomNumberGenerator(unsigned int seed)
+{
+ this->_generator = std::make_unique<std::mt19937>(seed);
+}
+
+RandomNumberGenerator::RandomNumberGenerator()
+{
+ std::random_device random_device;
+
+ this->_generator = std::make_unique<std::mt19937>(random_device());
+}
+
+unsigned int RandomNumberGenerator::in_range(unsigned int a, unsigned int b)
+{
+ auto random_distribution = std::uniform_int_distribution<unsigned int>(a, b);
+
+ return random_distribution(*this->_generator);
+}