Ich habe eine Klassenfunktion int ComputerClass::getGuess()
, die jedes Mal, wenn es aufgerufen wird, eine randomisierte Zahl erzeugen sollte. In meiner Hauptfunktion erstellt I 2 Funktionen der Klasse ComputerClass Computer1,Computer2
und die Klasse-Funktion aufgerufen, aber es ist die gleiche Anzahl für jeden Anruf zurückgibt:Randomizing der Startwert C++
cout << Computer1.getGuess()<<endl;
cout << Computer2.getGuess()<<endl;
Unten ist die Elementfunktion
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;
}
I‘ Ich nehme an, mein Problem ist der Startwert, aber ich weiß nicht, wie ich es einrichten soll, so dass die Zahl bei jedem Aufruf zufällig wird.
Rufen Sie 'srand' einmal am Anfang Ihres Programms auf. Jedes Mal, wenn Sie es mit der gleichen Nummer anrufen, ist der nächste Wert gleich. –
Richten Sie es so ein, dass 'srand()' nur einmal im gesamten Programm aufgerufen wird, nicht jedes Mal, wenn 'getGuess()' aufgerufen wird (was dazu führt, dass zwei zusammenkommende Aufrufe den gleichen Wert seit der Auflösung liefern) von 'time()' ist schlecht). Und suchen Sie nach besseren Alternativen zum Erzeugen von Zufallswerten, in C++ 11 und später, – Peter