![]() |
Gamedev Framework (gf)
0.12.0
A C++14 framework for 2D games
|
A random engine. More...
#include <gf/Random.h>
Public Member Functions | |
| Random () | |
| Default constructor with complex initialization. More... | |
| Random (std::uint_fast32_t seed) | |
| Constructor with simple initialization. More... | |
| template<typename T > | |
| T | computeUniformInteger (T min, T max) |
| Compute an integer with a uniform distribution. More... | |
| template<typename T > | |
| T | computeUniformFloat (T min, T max) |
| Compute a float with a uniform distribution. More... | |
| template<typename T > | |
| T | computeNormalFloat (T mean, T stddev) |
| Compute a float with a normal (Gaussian) distribution. More... | |
| bool | computeBernoulli (double p) |
| Compute a boolean with a Bernoulli distribution. More... | |
| Vector2f | computePosition (const RectF &area) |
| Compute a uniform position in a given area. More... | |
| Vector2i | computePosition (const RectI &area) |
| Compute a uniform position in a given area. More... | |
| std::mt19937 & | getEngine () |
| Get the underlying engine. More... | |
A random engine.
gf::Random is a wrapper around C++11 standard random features. It embeds a Mersenne Twister engine and provides several distributions above this engine.
| gf::Random::Random | ( | ) |
Default constructor with complex initialization.
This constructor initializes the Mersenne Twister thanks to a random device and a seed sequence. This ensures that the state of the engine is different for each instanciation. Choose this constructor if you need good statistical randomness.
|
inline |
Constructor with simple initialization.
This constructor initializes the Mersenne Twister with a single seed. This method is easy but not very good because it allows only \( 2^{32} \) possible states. Choose this constructor if you need reproducible randomness as a same seed will always provide the same sequence.
| seed | The seed for the engine |
|
inline |
Compute a boolean with a Bernoulli distribution.
| p | The probability of true |
Compute a float with a normal (Gaussian) distribution.
| mean | The mean of the distribution |
| stddev | The standard deviation of the distribution |
Compute a uniform position in a given area.
| area | The area |
Compute a uniform position in a given area.
| area | The area |
Compute a float with a uniform distribution.
| min | The minimum value (inclusive) |
| max | The maximum value (exclusive) |
min and max Compute an integer with a uniform distribution.
| min | The minimum value (inclusive) |
| max | The maximum value (inclusive) |
min and max
|
inline |
Get the underlying engine.
1.8.13