Pasterz Opublikowano 21 Maja 2007 Opublikowano 21 Maja 2007 cout <<"\nZatakowales wroga z moca: " <<hero.stats.sila - rand() % 5 +1; wrog.stats.zycie -= hero.stats.sila; cout <<"\nWrog ma teraz: " <<wrog.stats.zycie<<" zycia"; cout <<"\nWrog zatakowal cie z moca: " <<wrog.stats.sila - rand() % 5 +1; hero.stats.zycie -= wrog.stats.sila; cout <<"\nMasz teraz: " <<hero.stats.zycie<<" zycia"; Mam taki kod i nie wiem dlaczego gdy jest atak to nie odejmuje mi tyle ile wylosowało tylko ciągle 12. :blink: Czy ktoś by mi mógł powiedzieć co ja źle zrobiłem. Z góry dziękuje.
Vardi Opublikowano 21 Maja 2007 Opublikowano 21 Maja 2007 Przed losowaniem wywołaj funkcję srand: srand(time(NULL));
Pasterz Opublikowano 22 Maja 2007 Autor Opublikowano 22 Maja 2007 srand(time(NULL)); cout <<"\nZatakowales wroga z moca: " <<hero.stats.sila - rand() % 5 +1; wrog.stats.zycie -= hero.stats.sila; cout <<"\nWrog ma teraz: " <<wrog.stats.zycie<<" zycia"; cout <<"\nWrog zatakowal cie z moca: " <<wrog.stats.sila - rand() % 5 +1; hero.stats.zycie -= wrog.stats.sila; cout <<"\nMasz teraz: " <<hero.stats.zycie<<" zycia"; break; Mam tak i dalej odejmuje mi jedynie 12.
Will Opublikowano 23 Maja 2007 Opublikowano 23 Maja 2007 w nagłówku dodaj <ctime> i ma być srand (static_cast<int>(time(NULL)); (o ile dobrze pamiętam ;P)
Vardi Opublikowano 23 Maja 2007 Opublikowano 23 Maja 2007 #include <iostream> #include <conio.h> using namespace std; int main() { int ZycieWroga = 100; int ZycieGracza = 100; int obrazenia; cout << "Zycie Gracza: " << ZycieGracza << endl; cout << "Zycie Wroga: " << ZycieWroga << endl; cout << "Wcisnij dowolny klawisz by zaatakowac..."; getch(); srand(time(NULL)); obrazenia = rand() % 5 + 1; cout << "Zadane obrazenia: " << obrazenia << endl; cout << "Wrog ma teraz: " << ZycieWroga - obrazenia; getch(); return 0; } Powyższy kod mi działa bez problemów. Uprościłem trochę (nie kombinowałem z siłą itp.), ale możesz sobie to sam dorobić.
Pasterz Opublikowano 12 Czerwca 2007 Autor Opublikowano 12 Czerwca 2007 Mam jeszcze jedno pytanko jak zrobić aby nie było liczb ujemnych przy losowaniu. Z góry wielkie dzięki. :)
Will Opublikowano 12 Czerwca 2007 Opublikowano 12 Czerwca 2007 int MAKSYMALNA_LICZBA=47; int wylosowana; wylosowana=rand() % MAKSYMALNA_LICZBA + 1; tu ustawiasz zakres losowania pokombinuj, to nie trudne..
Vardi Opublikowano 12 Czerwca 2007 Opublikowano 12 Czerwca 2007 Zawsze możesz skorzystać z unsigned int.
kryniak Opublikowano 13 Czerwca 2007 Opublikowano 13 Czerwca 2007 Albo dołączyć cmath i użyć funkcji abs()
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się