34#ifndef TCOD_RANDOM_HPP_
35#define TCOD_RANDOM_HPP_
174 TCODRandom& operator=(TCODRandom&& rhs)
noexcept {
175 std::swap(data, rhs.data);
248 inline void setDistribution (TCOD_distribution_t distribution) { TCOD_random_set_distribution(data,distribution); }
271 inline int getInt (
int min,
int max,
int mean = 0) {
return (mean <= 0) ? TCOD_random_get_int(data,min,max) : TCOD_random_get_int_mean(data,min,max,mean); }
272 inline int get (
int min,
int max,
int mean = 0) {
return (mean <= 0) ? TCOD_random_get_int(data,min,max) : TCOD_random_get_int_mean(data,min,max,mean); }
314 inline float getFloat (
float min,
float max,
float mean = 0.0f) {
return (mean <= 0) ? TCOD_random_get_float(data,min,max) : TCOD_random_get_float_mean(data,min,max,mean); }
315 inline float get (
float min,
float max,
float mean = 0.0f) {
return (mean <= 0.0f) ? TCOD_random_get_float(data,min,max) : TCOD_random_get_float_mean(data,min,max,mean); }
357 inline double getDouble (
double min,
double max,
double mean = 0.0) {
return (mean <= 0) ? TCOD_random_get_double(data,min,max) : TCOD_random_get_double_mean(data,min,max,mean); }
358 inline double get (
double min,
double max,
double mean = 0.0f) {
return (mean <= 0.0) ? TCOD_random_get_double(data,min,max) : TCOD_random_get_double_mean(data,min,max,mean); }
417 inline TCOD_dice_t dice (
const char * s) {
return TCOD_random_dice_new(s); }
418 inline int diceRoll (
TCOD_dice_t dice) {
return TCOD_random_dice_roll(data,dice); }
419 inline int diceRoll (
const char * s) {
return TCOD_random_dice_roll(data,TCOD_random_dice_new(s)); }
436 friend class TCODLIB_API TCODNoise;
437 friend class TCODLIB_API TCODHeightMap;
438 friend class TCODLIB_API TCODNamegen;
439 friend class TCODNameGenerator;
Definition mersenne.hpp:94
void restore(const TCODRandom *backup)
TCODRandom(TCOD_random_algo_t algo=TCOD_RNG_CMWC, bool allocate=true)
You can also create as many generators as you want with a random seed (the number of seconds since Ja...
TCODRandom * save() const
You can save the state of a generator with :
TCODRandom(TCOD_Random *mersenne)
Take ownership of a TCOD_Random* pointer.
Definition mersenne.hpp:169
TCOD_Random * get_data() noexcept
Return this objects TCOD_Random* pointer.
Definition mersenne.hpp:427
void setDistribution(TCOD_distribution_t distribution)
Definition mersenne.hpp:248
static TCODRandom * getInstance(void)
The simplest way to get random number is to use the default generator.
double getDouble(double min, double max, double mean=0.0)
Definition mersenne.hpp:357
int getInt(int min, int max, int mean=0)
Definition mersenne.hpp:271
TCODRandom(uint32_t seed, TCOD_random_algo_t algo=TCOD_RNG_CMWC)
float getFloat(float min, float max, float mean=0.0f)
Definition mersenne.hpp:314
TCOD_random_algo_t
Definition mersenne_types.h:53
union TCOD_Random TCOD_Random
Pseudorandom number generator toolkit, all attributes are private.
@ TCOD_RNG_CMWC
Complementary-Multiply-With-Carry implementation.
Definition mersenne_types.h:61
Random number generator functions.
Definition mersenne_types.h:45
Pseudorandom number generator toolkit, all attributes are private.
Definition mersenne_types.h:87