Powtarzalność wartości zmiennej
Powtarzalność wartości zmiennej
Jest to mój pierwszy temat na tym forum więc na początku chciałbym powitać wszystkich bardzo serdecznie. Potrzebuję waszej pomocy. Tworzę, jak każdy zakładający tutaj temat, własny EA. Jednak natknąłem się na problem, którego sam nie potrafię rozwiązać. Zacznę od tego, że mam określone dwa warunki i jedną zmienną. Po uruchomieniu programu zmienna miałaby przyjąć wartość 0, czyli jak wiadomo, wartość domyślną. Następnie po spełnieniu jednego z warunków, przyjmijmy pierwszego, wartość zmiennej miałaby się zmienić na 1. Wartość ta miałaby się utrzymać aż do czasu spełnienia drugiego warunku, kiedy to przyjęłaby wartość 2, itd. Ważnym jest, aby w międzyczasie wartość się nie zmieniła mimo niespełnienia w kolejnych świecach pierwszego warunku. Myślałem o pętlach while zawartych w operatorach if, lecz pętla działałaby tylko na tych świecach, na których zostałyby spełnione warunki. Proszę o pomoc w rozwiązaniu tego problemu.
Re: Powtarzalność wartości zmiennej
Nie wiem czy o to chodzi, ale jeśli zmienna po spełnieniu danego warunku ma się zwiększyć o 1 to kod powinien wyglądać tak:
Zmienną deklarujesz przed funkcją OnTick():
Napisz czy o to Ci chodziło 
Kod: Zaznacz cały
if (twojWarunek) {
zmienna++;
}
Kod: Zaznacz cały
int zmienna = 0

Re: Powtarzalność wartości zmiennej
Raczej coś takiego.Pablo90 pisze:Nie wiem czy o to chodzi, ale jeśli zmienna po spełnieniu danego warunku ma się zwiększyć o 1 to kod powinien wyglądać tak:Zmienną deklarujesz przed funkcją OnTick():Kod: Zaznacz cały
if (twojWarunek) { zmienna++; }
Napisz czy o to Ci chodziłoKod: Zaznacz cały
int zmienna = 0
"Zmienną" i "sprawdzam" deklarujesz przed funkcją OnTick():
Kod: Zaznacz cały
int zmienna = 0;
bool sprawdzam = true;
Kod: Zaznacz cały
if (twojWarunek && sprawdzam) {
zmienna= ...;//tu zmienna przyjmuje jakas wartosc
sprawdzam = false;
}
Kod: Zaznacz cały
if (twojWarunek_2) {
zmienna= ...;//tu zmienna przyjmuje jakas wartosc
}
Re: Powtarzalność wartości zmiennej
Panowie, wszystko działa jak należy, za co dziękuję. Dodałem tylko przy drugim if'ie sprawdzam=true i działa tak jak zamierzałem.
Oczywiście przed OnTick()
Teraz to wygląda tak. Po uruchomieniu programu zmienna utrzymuje wartość 0 aż do czasu spełnienia się któregoś z warunków np. pierwszego. Wówczas zmienia wartość na 1 i utrzymuje ją do czasu spełnienia warunku2. Po tym przyjmuje wartość 2 i utrzymuje ją do czasu spełnienia warunku1 i tak w kółko.
Mam do Was jeszcze jedną prośbę. Czy jest możliwość ignorowania przez jakiś okres czasu bądź ilość słupków warunku1 po spełnieniu warunku2? Chodzi mi o uśpienie sprawdzania warunków przez jakiś czas, przykładowo jedną godzinę. Wyglądałoby to tak. Po uruchomieniu programu zmienna utrzymuje wartość 0 aż do czasu spełnienia się któregoś z warunków, np. pierwszego. Wówczas zmienia wartość na 1 i utrzymuje ją co najmniej przez godzinę, nawet gdyby w tym okresie zostałby spełniony warunek2. Po upływie tej godziny program dopiero zacząłby sprawdzanie, czy warunek2 jest spełniony i zmieniałby wartość zmiennej na 2, a dalej analogicznie. Proszę Was o pomoc.
Kod: Zaznacz cały
if(warunek1&&sprawdzam){
zmienna=1;
sprawdzam=false;
}
if(warunek2){
zmienna=2;
sprawdzam=true;
}
Kod: Zaznacz cały
int zmienna=0;
bool sprawdzam=true;
Mam do Was jeszcze jedną prośbę. Czy jest możliwość ignorowania przez jakiś okres czasu bądź ilość słupków warunku1 po spełnieniu warunku2? Chodzi mi o uśpienie sprawdzania warunków przez jakiś czas, przykładowo jedną godzinę. Wyglądałoby to tak. Po uruchomieniu programu zmienna utrzymuje wartość 0 aż do czasu spełnienia się któregoś z warunków, np. pierwszego. Wówczas zmienia wartość na 1 i utrzymuje ją co najmniej przez godzinę, nawet gdyby w tym okresie zostałby spełniony warunek2. Po upływie tej godziny program dopiero zacząłby sprawdzanie, czy warunek2 jest spełniony i zmieniałby wartość zmiennej na 2, a dalej analogicznie. Proszę Was o pomoc.