pomoc w błędzie logicznym

0
nLogic = rand() / 100 + 1;
                 if (nLogic <= witalnosc)
                 {
                               cout << "(Rzut: " << nLogic << " | Prog: " << witalnosc << ") Szczesliwie dobiegles do krzyza.\nWysilek obnizyl twoja witalnosc o 5 punktow." << endl;
                               Dalej();
                               witalnosc -= 5;
                               if (witalnosc < 0) witalnosc = 0;
                 }
                 else if (nLogic > witalnosc) abort();

wiecie czemu włącza się abort?

0

A wiesz chociaż co zwraca rand(), że dzielisz go przez 100?

0

jeśli chodzi o to, czy umieściłem gdzieś w kodzie srand, to odpowiadam że tak.

a można do rzeczy?

0

No, nie wiesz. Zwraca od 0 do RAND_MAX. Czyli w twojej zmiennej na Windowsie dostaniesz liczbę od 1 do 328.

Obowiązkowo do obejrzenia:

0

http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
http://pl.wikibooks.org/wiki/C/rand
rand() może zwrócić wartości od 0 do około 32767
Zapomniałeś o modulo :P

0

bo nLogic jest większe od witalnosc. np rand()/10+1 przy zalozeniu, ze rand() zwróci np 11100, to nLogic będzie wynosić 112. niech zgadnę: to więcej niż witalnosc?

0

dzięki :)
zamiast % dałem omyłkowo /

1

Tak na przyszłość - przy takich błędach świetnie spisuje się debugger - możesz linijka po linijce podglądać jakie wartości przyjmują konkretne zmienne => błąd można znaleźć w kilka sekund.

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