猪骰子模拟器,c ++

时间:2016-02-13 00:46:46

标签: c++

我实际上是在学习C ++语言而且我正在做猪游戏,需要玩骰子,我的问题是我的骰子总是滚动相同的数字,无论我关闭了多少次CodeBlocks或重新运行程序。我也想说,我已经使用了一个变量:dice=rand() % 6 + 1,但我目前正在使用:

int roll() {
    return rand() % 6 + 1 ;
     }

我认为更好(idk为什么)。

为什么这会给我一遍又一遍?非常感谢您的回答^^

3 个答案:

答案 0 :(得分:2)

至少在C中,在使用rand之前,您应该致电srand(time(NULL));

答案 1 :(得分:0)

C风格

std::srand(std::time(NULL)); // calling it once at the start of program is enough
//later in code
std::rand() % 6 + 1;

C ++ Style Source

std::default_random_engine generator; // there are many random engines in <random> header
std::uniform_int_distribution<int> distribution(1,6);
int dice_roll = distribution(generator);  // generates number in the range 1..6 
//For repeated uses, both can be bound together:
auto dice = std::bind ( distribution, generator );
// calling dice() will generate number in the range 1..6 for example int number = dice();

答案 2 :(得分:0)

只是为了完整性:实际上,如果你喜欢这种行为,你不必调用srand(),也可能很少调试。