用面向对象的方法实现一个掷骰子的游戏,在写程序的时候发现在给两个骰子分配随机数的时候,两个骰子的随机数总是一样的,大致问题就是分配的时间种子一样,最后的解决方法就是将时间种子放在了构造函数里初始化,那么取随机数的时候时间就不一样,取的随机数就不一样。
//获取骰子点数
class Die{
private:
int faceValue;
public:
Die(){
faceValue = 0;
//为防止产生的两个随机数相同,将时间种子放在构造函数里
srand((unsigned)time(NULL));
}
int getFaceValue(){
return faceValue;
}
void roll(){
//产生随机数,表示骰子的点数
faceValue = rand() % 6 + 1;
}
};
本文介绍了一个使用面向对象方法实现的掷骰子游戏,并解决了游戏中两个骰子随机数同步的问题。通过将时间种子设置在构造函数中,确保每次获取随机数时的时间种子不同,从而避免了随机数重复。
不同的随机数&spm=1001.2101.3001.5002&articleId=78815571&d=1&t=3&u=5d1a761fa8fc4d9cb61b45675875fc83)
1万+

被折叠的 条评论
为什么被折叠?



