random number generator helper class
More...
#include <rng.h>
|
uint32_t | _seed |
| Seed value for random number generator // HACK this only public to make the core application update it if an invalid one is found. I really don't like it, but its the best I can do for now. More...
|
|
|
std::mt19937 | _randomEngine |
|
std::vector< uint32_t > | _seedBlacklist = { 72304668, 2126917180, 3620160884 } |
| c mersenne-twister engine for random number generator More...
|
|
bool | _printSeed |
| c list of seeds know to not produce a viable level, instead puts generation into an endless loop More...
|
|
random number generator helper class
◆ RNG()
skr::pcg::RNG::RNG |
( |
bool |
printSeed = false | ) |
|
constructor uses random seed
- Parameters
-
printSeed | set true to print seed to cmd and log, otherweise false. Default: false |
◆ CheckViableSeed()
bool skr::pcg::RNG::CheckViableSeed |
( |
uint32_t |
seed | ) |
|
|
private |
check if a given seed is not on the blacklist this is easy solution/hack to prevent levels with overlapping rooms, etc. to be generated
- Parameters
-
- Returns
- true if seed is not on blacklist, otherwise false
◆ GenerateViableSeed()
uint32_t skr::pcg::RNG::GenerateViableSeed |
( |
| ) |
|
|
private |
Generates a new seed that is checked to be viable.
- Returns
- seed value that is not on blacklist
◆ GetRandomDouble()
double skr::pcg::RNG::GetRandomDouble |
( |
const double |
lower, |
|
|
const double |
upper |
|
) |
| |
returns a random double from given range
- Parameters
-
lower | lower bound |
upper | upper bound |
- Returns
- random idouble
◆ GetRandomFloat()
float skr::pcg::RNG::GetRandomFloat |
( |
const float |
lower, |
|
|
const float |
upper |
|
) |
| |
returns a random float from given range
- Parameters
-
lower | lower bound |
upper | upper bound |
- Returns
- random float
◆ GetRandomInteger()
int skr::pcg::RNG::GetRandomInteger |
( |
const int |
lower, |
|
|
const int |
upper |
|
) |
| |
returns a random interger from given range
- Parameters
-
lower | lower bound |
upper | upper bound |
- Returns
- random integer
◆ InitWithFixedSeed()
void skr::pcg::RNG::InitWithFixedSeed |
( |
uint32_t |
seed | ) |
|
|
private |
Initializes random number generator with given fixed seed.
- Parameters
-
◆ InitWithRandomSeed()
void skr::pcg::RNG::InitWithRandomSeed |
( |
| ) |
|
|
private |
c true to print seed to cmd and log, otherwise false
Initializes random number generator with random seed
◆ SetPrintSeed()
void skr::pcg::RNG::SetPrintSeed |
( |
bool |
printSeed | ) |
|
Set printSeed Parameter.
- Parameters
-
printSeed | true to print seed to cmd and log, otherwise false |
◆ SetRandomSeed()
void skr::pcg::RNG::SetRandomSeed |
( |
| ) |
|
Initializes random number generator with random seed.
◆ SetSeed()
void skr::pcg::RNG::SetSeed |
( |
uint32_t |
seed | ) |
|
Initializes random number generator with given fixed seed.
- Parameters
-
◆ _printSeed
bool skr::pcg::RNG::_printSeed |
|
private |
c list of seeds know to not produce a viable level, instead puts generation into an endless loop
◆ _randomEngine
std::mt19937 skr::pcg::RNG::_randomEngine |
|
private |
◆ _seed
uint32_t skr::pcg::RNG::_seed |
Seed value for random number generator // HACK this only public to make the core application update it if an invalid one is found. I really don't like it, but its the best I can do for now.
◆ _seedBlacklist
std::vector<uint32_t> skr::pcg::RNG::_seedBlacklist = { 72304668, 2126917180, 3620160884 } |
|
private |
c mersenne-twister engine for random number generator
The documentation for this class was generated from the following files: