用面向对象的方法实现一个掷骰子的游戏,在写程序的时候发现在给两个骰子分配随机数的时候,两个骰子的随机数总是一样的,大致问题就是分配的时间种子一样,最后的解决方法就是将时间种子放在了构造函数里初始化,那么取随机数的时候时间就不一样,取的随机数就不一样。
//获取骰子点数
class Die{
private:
int faceValue;
public:
Die(){
faceValue = 0;
//为防止产生的两个随机数相同,将时间种子放在构造函数里
srand((unsigned)time(NULL));
}
int getFaceValue(){
return faceValue;
}
void roll(){
//产生随机数,表示骰子的点数
faceValue = rand() % 6 + 1;
}
};