R-Type  1.0.1.0
Rewrite of the R-Type game with networking ability
Loading...
Searching...
No Matches
Random.hpp
1/*
2** EPITECH PROJECT, 2023
3** Random.hpp
4** File description:
5** Random.hpp
6*/
7
8#ifndef R_TYPE_RANDOM_HPP
9#define R_TYPE_RANDOM_HPP
10
11#include <random>
12
13class Random {
14public:
18 Random() = default;
19
26 short generate(short min, short max)
27 {
28 std::default_random_engine gen(this->_random_device());
29 std::uniform_int_distribution<short> uniform_dist(min, max);
30 return uniform_dist(gen);
31 }
32
39 int generate(int min, int max)
40 {
41 std::default_random_engine gen(this->_random_device());
42 std::uniform_int_distribution<int> uniform_dist(min, max);
43 return uniform_dist(gen);
44 }
45
52 long generate(long min, long max)
53 {
54 std::default_random_engine gen(this->_random_device());
55 std::uniform_int_distribution<long> uniform_dist(min, max);
56 return uniform_dist(gen);
57 }
58
65 std::size_t generateSizeT(std::size_t min, std::size_t max)
66 {
67 std::default_random_engine gen(this->_random_device());
68 std::uniform_int_distribution<std::size_t> uniform_dist(min, max);
69 return uniform_dist(gen);
70 }
71
78 double generate(double min, double max)
79 {
80 std::default_random_engine gen(this->_random_device());
81 std::uniform_real_distribution<double> uniform_dist(min, max);
82 return uniform_dist(gen);
83 }
84
91 float generate(float min, float max)
92 {
93 std::default_random_engine gen(this->_random_device());
94 std::uniform_real_distribution<float> uniform_dist(min, max);
95 return uniform_dist(gen);
96 }
97
98private:
99 std::random_device _random_device;
100};
101
102#endif //R_TYPE_RANDOM_HPP
Definition: Random.hpp:13
float generate(float min, float max)
Generate a random float using the std::default_random_engine & uniform_real_distribution.
Definition: Random.hpp:91
Random()=default
Construct a new Random object, default constructor.
int generate(int min, int max)
Generate a random int using the std::default_random_engine & uniform_int_distribution.
Definition: Random.hpp:39
short generate(short min, short max)
Generate a random short using the std::default_random_engine & uniform_int_distribution.
Definition: Random.hpp:26
double generate(double min, double max)
Generate a random double using the std::default_random_engine & uniform_real_distribution.
Definition: Random.hpp:78
std::size_t generateSizeT(std::size_t min, std::size_t max)
Generate a random std::size_t using the std::default_random_engine & uniform_int_distribution.
Definition: Random.hpp:65
long generate(long min, long max)
Generate a random long using the std::default_random_engine & uniform_int_distribution.
Definition: Random.hpp:52