[C++] Pomoc - można zrobić dwa warunki pętli "do..while" ?
Ostatnio zmodyfikowano 2014-03-28 14:43
Lonyy Temat założony przez niniejszego użytkownika |
[C++] Pomoc - można zrobić dwa warunki pętli "do..while" ? » 2014-03-27 21:13:01 Witam serdecznie. Zacząłem sobie pisać prostą gierkę i mam pewien problem. Najpierw może wkleję kod żeby pokazać o co mi chodzi. do { std::cout << "Atakujesz wroga" << std::endl; dmg_zadany_postac = losowanie_dmg_postac( dmgmin_do_walki_ze_slaby_wrog, dmgmax_do_walki_ze_slaby_wrog ); hpwroga = hpwroga - dmg_zadany_postac; std::cout << "Zostalo mu: " << hpwroga << " hp." << std::endl; if( hpwroga > 0 ) { std::cout << "Wrog atakuje Ciebie" << std::endl; dmg_zadany_wrog = losowanie_dmg_wroga( dmgminwroga_do_walki_ze_slaby_wrog, dmgmaxwroga_do_walki_ze_slaby_wrog ); hp = hp - dmg_zadany_wrog; std::cout << "Zostalo Ci: " << hp << " hp." << std::endl; } else { std::cout << "Pokonales wroga." << std::endl; std::cout << "Zdobywasz: " << expzwroga << "expa i " << goldzwroga << " golda." << std::endl; goldpostaci = goldpostaci + goldzwroga; exppostaci = exppostaci + expzwroga; } } while( hpwroga > 0 ); Chciałbym zrobić aby warunek while kończył pracę pentli jeśli moje hp będzie mniejsze lub rowne zero (czyli zginę po prostu). Próbowałem zrobić coś takiego while( hpwroga > 0 || hp > 0 ); ale wtedy pętla wykonuje się w nieskończoność. |
|
alixir |
» 2014-03-27 21:22:27 while( hpwroga > 0 && hp > 0 ); |
|
Winner_Of_Death |
» 2014-03-27 21:24:23 http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Operacje-porownania/14 |
|
Lonyy Temat założony przez niniejszego użytkownika |
» 2014-03-27 21:31:31 Ale według tego while( hpwroga > 0 && hp > 0 ); jeśli dobrze zrozumiałem, to muszą byc spełnione oba warunki, czyli ginę ja i wróg. Chodzi mi natomiast (ta pętla to pętla walki) że jeśli zginie albo wróg albo ja to pętla zostanie skończona. Bo według kursu to "&&" oznacza że "wszystkie wartości muszą być prawdziwe", a nie o to mi chodzi. Jeśli źle coś rozumuję to poprawcie mnie :) |
|
waxx |
» 2014-03-27 21:36:04 O czym ty mówisz? Przeczytaj to sobie
"Dopóki hp wroga będzie wieksze od zera i moje hp będzie większe od zera"
Działa tak jak ty chcesz ;) |
|
Lonyy Temat założony przez niniejszego użytkownika |
» 2014-03-28 14:43:03 Dzięki, faktycznie działa. Źle zrozumiałem działanie tych && znaków. Jeszcze raz dzięki za pomoc, temat do zamknięcia. |
|
« 1 » |