C++ で 2 つの乱数をすばやく生成する方法を探しています。コードはサイコロ用で、ロール時に乱数を生成する必要があります。私のコードは現在次のようになっています。
Die::Die() {
srand(time(NULL));
}
void Die::roll() {
value = rand() % 6 + 1;
}
このコードで 2 つのオブジェクトを作成すると、srand() は静的 (非インスタンス ベース) 関数であり、すべてのオブジェクトの新しいシードを生成します。私もこれをやってみました:
void Die::roll() {
srand(time(NULL));
value = rand() % 6 + 1;
}
コンストラクターに入れるのではなく、次のようにすばやく呼び出すと:
die0->roll();
die1->roll();
通常、それらの値は同じです。毎回これを実際にランダムにする方法はありますか? ご助力いただきありがとうございます。:)