-1
私はクラスの関数int ComputerClass::getGuess()
を呼び出すたびにランダム化された数値を生成する必要があります。私の主な機能では、私はクラスComputerClass Computer1,Computer2
の2つの機能を作成し、クラスの機能と呼ばれる、しかし、それは、各呼び出しで同じ番号を返します。以下はシード値のランダム化C++
cout << Computer1.getGuess()<<endl;
cout << Computer2.getGuess()<<endl;
は、私は
int ComputerClass::getGuess()
{
//Generate randomn number
srand(time(NULL));
generatednumber = rand() % 100 + 1;
//return computers randomly generated #
cout <<"--(Computer)Please enter a guess between 1-100: "<<
generatednumber<<endl;
return generatednumber;
}
クラスのメンバ関数であります私の問題はシード値だと仮定していますが、それを設定する方法がわからないので、呼び出されるたびにその番号がランダムになります。
プログラムの先頭で 'srand'を一度呼び出します。あなたが同じ番号でそれを呼び出すたびに、あなたが得る次の価値は同じになります。 –
'getGuess()'が呼び出されるたびにではなく、 'srand()'がプログラム全体で一度だけ呼び出されるように設定します(時間の経過とともに2つの呼び出しが同じ値を返す可能性があります。 'time()'の値が悪い)。また、C++ 11以降では、ランダムな値を生成するためのより良い選択肢を見て、 – Peter