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..
}