qrand nie działa :(

qrand nie działa :(
E8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Witam,

Piszę grę w której "boss" co 3 sekundy losowo zmienia swoje ataki. Mam już napisaną prawie całą grę ale qrand() nie działa. Mam klasę Enemy. W konstruktorze umieściłem

Kopiuj
 qsrand(QTime::currentTime().msec());

W konstruktorze odpalam również timer działający periodycznie co 3 sekundy. Timer odpala metodę w której jest switch z atakami przyjmujący wylosowaną liczbę z qrand().

Kopiuj
int random = qrand()%1;
    attack(random);

Random zawsze jest 0. Co robię źle?

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
1

Jeżeli robisz qsrand przed każdym qrand to tak będzie się działo.
Przenieś qsrand tak, żeby było wywoływane tylko raz w całym programie (a właściwie raz na każdy wątek w którym qsrand jest użyty).

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
4

Random zawsze jest 0.
Podaj mi proszę przypadek, kiedy reszta z dzielenia przez jeden nie będzie równa zero.

E8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Dziękuje wam obu :)

Co do % 1 - głupio wyszło. Mam 5 ataków, dawałem qrand()%5. Ale przedtem testowałem 2 ataki. Jakoś głupio skojarzyłem, że ma być %1.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.