![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
Witam , potrzebuję napisać pętle która przestanie się wykonywać w 3 warunkach , gdy zmienna $zycie1 lub $zycie2 osiagna wartosc mniejsza badz rowna 0 lub petla sie wykona 30 x i wtedy koniec.
prosił bym o pomoc z góry dziękuje.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
break;
Czytaj kursy . |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
czy o tym mówiłeś ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Bezpieczniej byłoby zostawić te l_r < 30 jako
Bo wiesz, że nigdy ta pętla się nie skończy przed l_r = 30? Czemu? To proste, zycie1 i zycie2 nigdy nie zejdą poniżej 0 z tej przyczyny, że za każdym przejściem pętli wracają do wartości 600 i 1000 na starcie a rand losuje u nich od 100 do 500 ![]() to dokładnie to samo co i analogicznie $zycie2 to: Ten post edytował thek 25.10.2009, 13:58:22 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
wiem właśnie że coś jest źle.. tylko jeszcze nie wiem co ;p
chodzi mi o to że chce zrobić że ja mam np 500 życia i jest poprzez rand losowane ile mi zabierze mój przeciwnik i tak samo ile ja mu zabiorę i chodzi o to żeby pętla przestała się wykonywać w 3 przypadkach. gdy moje życie osiągnie 0 lub mniej , gdy przeciwnika lub żaden z nas nie zginie w ciągu 30 uderzeń (czyli 30 wykonań pętli)
problem tkwi w tym że mam przypuszczenie że nie działa tak jak powinno (logicznie) oraz pętla za każdym razem wykonuje się 30x bez znaczenia że któryś przeciwnik ma już dawno poniżej 0 Ten post edytował Ulysess 25.10.2009, 14:47:01 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Twoja obecna poprawka prawie wyeliminowała problem
![]() ![]() Gracze atakują się równocześnie: Zauważ, że tutaj nieważne jest kto atakuje w jakiej kolejności. Wynik jest liczony po zadaniu ciosów. Teraz wariant drugi, gdzie $zycie1 to życie atakującego, a $zycie2 to broniący się: Co to daje? Odpowiednik walki turowej ![]() ![]() Zauważ, że rozwiążanie 1 ma jeden fajny dodatek... Może zaistnieć remis, jeśli po walce w tej samej turze obaj zejdą na życiu <= 0 ![]() A najważniejsze... Prawie sam rozwiązałeś problem życia. Licznik życia wewnątrz i na zewnątrz pętli (startowy) to powinny być te same zmienne. Wtedy nastąpi "nadpisanie" i dzięki temu będziesz miał stale aktualne wyniki życia graczy. Wynika to z zasięgu widoczności zmiennych. W innych językach programowania nie musi tak już być, gdyż wtedy na stosie istnieje zmienna lokalna o tej samej nazwie co zmienna globalna, ale dla kompa to dwie różne ![]() Ten post edytował thek 25.10.2009, 22:52:30 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:56 |