#pragma once #include #include /** * Pseudo-random unsigned integer generator. */ class RandomNumberGenerator { public: /** * Creates a pseudo-random number generator. * * @param seed A number generation seed */ explicit RandomNumberGenerator(const unsigned int &seed); /** * Creates a pesudo-random number generator. */ RandomNumberGenerator(); /** * Generates a number in the range of a to b. * * @param a A number lower than b * @param b A number greater than a */ [[nodiscard]] unsigned int in_range(const unsigned int &a, const unsigned int &b) const; private: std::unique_ptr _generator; };