summaryrefslogtreecommitdiff
path: root/random.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'random.cpp')
-rw-r--r--random.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/random.cpp b/random.cpp
new file mode 100644
index 0000000..e94b191
--- /dev/null
+++ b/random.cpp
@@ -0,0 +1,27 @@
+#include "random.hpp"
+#include <chrono>
+#include <cmath>
+
+namespace ur {
+
+Random::Random(int min, int max)
+{
+ this->min = min;
+ this->max = max;
+ // setup the random stuff
+ unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
+ this->engine = std::default_random_engine(seed);
+
+ // setup distribution
+ float range = float(max - min);
+ this->distribution =
+ std::normal_distribution<float>(range / 2.f, range / 4.f);
+}
+
+int
+Random::next()
+{
+ return std::round(this->distribution(this->engine));
+}
+
+}