重複の可能性:
C++ アプリケーションで srand() を呼び出す頻度は?
複数のサイコロを転がす機能を実装しようとしていますが、私のコードでは、2 つ以上のサイコロを作成しても、常に同じ数字を転がすように見えます。これが私のコードです:
Dice::Dice() {}
void Dice::roll()
{
srand(time(0));
setFaceValue((rand() % MAX_FACE_VALUE + 1));
}
int Dice::getFaceValue()
{
return currentFaceValue;
}
void Dice::setFaceValue(int value)
{
currentFaceValue = value;
}
これをドライバーにプログラムすると、同じ数が 3 回得られます。
int main()
{
Dice d1, d2, d3;
d1.roll();
cout << d1.getFaceValue() << endl;
d2.roll();
cout << d2.getFaceValue() << endl;
d3.roll();
cout << d3.getFaceValue() << endl;
}