Kilkukrotna generacja liczb pseudolosowych

0

Spotkałem się z pewnym problem związanym z generowaniem liczb. Chodzi o to że w grze w statki gracz gra z komputerem. Na początku generuje plansze ze statkami komputera. Ustawienie tych statków zrobiłem w sposób losowy opierający się na generowaniu liczb z danego zakresu i przypisywaniu go jako współrzędnych planszy. I teraz robi się problem bo podczas wywołania programu czas systemu nie zdązy się zmienić stąd generator powiela wylosowane liczby, a to skutkuje błędnym działaniem. Czy jest możliwość zrobienia czegoś żeby podczas jednego wywołania programu otrzymać różne wyniki? Przeglądałem google i forum ale nie znalazłem nic konkretnego. Poniżej podaje funkcje których używam:

int Silnik::Los()
{
	return (rand() % 10) + 1;
}
int Silnik::Losowa_Liczba()   //zwraca losową liczbe do wyboru pola
{
	srand(time(0));

	return Los();
}
void Silnik::Umieszczenie_Trojmasztowca() //Umieszenie trójmasztowca
{
	int x = Losowa_Liczba();
	int y = Losowa_Liczba();

       //code..

void Silnik::Umieszczenie_Czteromasztowca()
{
	int x = Losowa_Liczba();
	int y = Losowa_Liczba();

       // code..
 void main()
{
Silnik gra;

gra.Umieszczenie_Czteromasztowca();

gra.Umieszczenie_Trojmasztowca();

      // code..
}
3

Wrzuć

srand(time(NULL));

do main. Wystarczy raz.

0

no wygląda to teraz lepiej ;)
Dzięki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1