// // random.h // dice-roll // // Created by Sam Jaffe on 12/1/18. // Copyright © 2018 Sam Jaffe. All rights reserved. // #pragma once #include namespace dice { namespace engine { class random : private ::engine::random_number_generator { using super = ::engine::random_number_generator; public: using super::random_number_generator; /** * @brief Roll 1dN * @param sides The number of sides (N) on a die. e.g. d20 * Domain: sides > 0 * @return A number in the range [1, N] * @throws Produces UB if sides = 0 */ unsigned int roll(unsigned int sides) const { return super::exclusive(sides) + 1; } }; }}