Kilkukrotna generacja liczb pseudolosowych

2015-01-07 14:28
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..
}
edytowany 2x, ostatnio: olesio, 2015-01-07 17:34
Nadawaj wątkowi sensowne tagi i kod wstawiaj w konkretne znaczniki. Inaczej, w przyszłości wątek trafi do Kosza. - olesio 2015-01-07 17:36

Pozostało 580 znaków

2015-01-07 14:35

Wrzuć

srand(time(NULL));

do main. Wystarczy raz.

Pozostało 580 znaków

2015-01-07 14:40
0

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

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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