Programuję grę i w pewnym wytłumaczeniu jak zrobic losowośc pewnych obiektów została użyta ta ,linijka:
if (rand() % 500 == 0)
Czy ktoś mi może dokładnie wytłumaczyć jak ona działa i o co w niej chodzi?
Programuję grę i w pewnym wytłumaczeniu jak zrobic losowośc pewnych obiektów została użyta ta ,linijka:
if (rand() % 500 == 0)
Czy ktoś mi może dokładnie wytłumaczyć jak ona działa i o co w niej chodzi?
Ta linijka sprawdza, czy reszta z dzielenie przez 500 liczby zwróconej przez funkcję rand() jest równa 0. rand() zwraca liczbę pseudolosową z zakresu 0 do RAND_MAX (RAND_MAX to co najmniej 32767).
z szansą 1/500 - wykonaj ...
Warto mieć na uwadze, że rand() nie gwarantuje żadnego rozkładu i jest raczej kiepskim (acz zazwyczaj szybkim) generatorem. Szansa wcale nie musi wynosić 1/500.
Implementacja z glibc całkiem dobrze sobie jednak radzi: http://ideone.com/0jZJST