Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak wykonać pętle tego kodu?
Forum PHP.pl > Forum > Przedszkole
MrCoody
Witam! Mam kod:
  1. #pierwszy atak
  2. if($us_hp >= 1)
  3. { $atak_us_a = rand($us_at_min,$us_at_max); //losowanie ataku gracza w pierwszym ataku
  4. $atak_zw_a = rand($zw_at_min,$zw_at_max); //losowanie ataku zwierza w pierwszysm ataku
  5.  
  6. $hp_zw_a = $zw_hp - $atak_us_a; //odejmowanie ataku
  7. $hp_us_a = $us_hp - $atak_zw_a; //odejmowanie ataku
  8.  
  9. echo "Pierwszy atak<br>"; // wyswietla pierwszy atak
  10. echo "&raquo; Gracz ma $us_hp HP zadaje $zwierze $atak_us_a obrażeń.<br>"; // gracz ma 100HP i bije mysz 12 obrażeniami
  11. if($hp_zw_a <= "0") { //jeśli zwierz przegra gracz wygrywa
  12. echo "Wygrałeś!"; } // trolololo WYGRAŁEŚ!
  13. else {echo "&raquo; $zwierze ma ".$hp_zw_a." HP zadaje graczowi $atak_zw_a obrażeń.<br>"; //jeśli nie to dalej walczy
  14.  
  15.  
  16. #drugi atak ___________________________________________________________________________
  17. if($hp_us_a >= 1)
  18. { $atak_us_b = rand($us_at_min,$us_at_max); //losowanie ataku gracza w pierwszym ataku
  19. $atak_zw_b = rand($zw_at_min,$zw_at_max); //losowanie ataku zwierza w pierwszysm ataku
  20.  
  21. $hp_zw_b = $hp_zw_a - $atak_us_b; //odejmowanie ataku
  22. $hp_us_b = $hp_us_a - $atak_zw_b; //odejmowanie ataku
  23.  
  24. echo "Drugi atak<br>"; // wyswietla pierwszy atak
  25. echo "&raquo; Gracz ma $hp_us_a HP zadaje $zwierze $atak_us_b obrażeń.<br>"; // gracz ma 100HP i bije mysz 12 obrażeniami
  26. if($hp_zw_b <= "0") { //jeśli zwierz przegra gracz wygrywa
  27. echo "Wygrałeś!"; } // trolololo WYGRAŁEŚ!
  28. else {echo "&raquo; $zwierze ma ".$hp_zw_b." HP zadaje graczowi $atak_zw_b obrażeń.<br>"; //jeśli nie to dalej walczy
  29.  
  30. #trzeci atak ___________________________________________________________________________
  31. if($hp_us_b >= 1)
  32. { $atak_us_c = rand($us_at_min,$us_at_max); //losowanie ataku gracza w pierwszym ataku
  33. $atak_zw_c = rand($zw_at_min,$zw_at_max); //losowanie ataku zwierza w pierwszysm ataku
  34.  
  35. $hp_zw_c = $hp_zw_b - $atak_us_c; //odejmowanie ataku
  36. $hp_us_c = $hp_us_b - $atak_zw_c; //odejmowanie ataku
  37.  
  38. echo "Trzeci atak<br>"; // wyswietla pierwszy atak
  39. echo "&raquo; Gracz ma $hp_us_b HP zadaje $zwierze $atak_us_c obrażeń.<br>"; // gracz ma 100HP i bije mysz 12 obrażeniami
  40. if($hp_zw_c <= "0") { //jeśli zwierz przegra gracz wygrywa
  41. echo "Wygrałeś!"; } // trolololo WYGRAŁEŚ!
  42. else {echo "&raquo; $zwierze ma ".$hp_zw_c." HP zadaje graczowi $atak_zw_c obrażeń.<br>"; //jeśli nie to dalej walczy
  43.  
  44. }
  45.  
  46. } else { echo "Przegrałeś!"; }
  47. } else { echo "Przegrałeś!"; }
  48.  
  49. } else { echo "Przegrałeś!"; } } else { echo "Przegrałeś!"; }
  50.  
jest napisany przezemnie, ale nie znam się na pętlach dlatego tak jest napisany biggrin.gif

Jak można to przerobić na pętlę for lub while. Jest to "kod" na atakowanie zwierzęcia. Po każdym ataku zabierane jest HP od obydwu postaci czyli gracza i zwierzęcia i opisuje przebieg ataku. Jeśli któraś postać ma 0 lub mniej to przegrywa, jeśli jest to zwierzę to wypisuje Wygrałeś! jeśli gracz to Przegrałeś! snitch.gif

Z góry dzięki za podpowiedź lub całość biggrin.gif Ja nawet nie wiem jak to ugryźć. Pozdrawiam :}
Ulysess
podpowiedź:

  1. for ($l_r = 1 ; ($atakujacy['zycie'] > 0 AND $obronca['zycie'] > 0) AND $l_r <= 31; $l_r++)


tłumacząc pętla będzie się wykonywać do momentu aż z któraś z postaci nie będzie miała mniej życia jak 0 (można przerobić na 1) bądź nie zostanie osiągnięta maksymalna ilość rund.-> 30

w pętli robisz zwykłe obliczenia na zasadzie
  1. $atakujacy['zycie'] = $atakujacy['zycie'] - $obrazenia_obronca;
  2. $obronca['zycie'] = $obronca['zycie'] - $obrazenia_atakujacy;



akcje typu wygrana przegrana remis robisz już po za pętlą na podstawie zycia atakujacego , obroncy , liczby rund
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.