Powtarzalność wartości zmiennej

O jezykach programowania w platformach i nie tylko.
migawa
Uczestnik
Uczestnik
Posty: 2
Rejestracja: 28 lip 2016, 18:21

Powtarzalność wartości zmiennej

Nieprzeczytany post autor: migawa »

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.

Awatar użytkownika
Pablo90
Pasjonat
Pasjonat
Posty: 1215
Rejestracja: 10 cze 2007, 15:36

Re: Powtarzalność wartości zmiennej

Nieprzeczytany post autor: Pablo90 »

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:

Kod: Zaznacz cały

if (twojWarunek) {
    zmienna++;
}
Zmienną deklarujesz przed funkcją OnTick():

Kod: Zaznacz cały

int zmienna = 0
Napisz czy o to Ci chodziło :)

JAREK67
Maniak
Maniak
Posty: 2143
Rejestracja: 13 lip 2006, 11:21

Re: Powtarzalność wartości zmiennej

Nieprzeczytany post autor: JAREK67 »

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:

Kod: Zaznacz cały

if (twojWarunek) {
    zmienna++;
}
Zmienną deklarujesz przed funkcją OnTick():

Kod: Zaznacz cały

int zmienna = 0
Napisz czy o to Ci chodziło :)
Raczej coś takiego.
"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 
    
}

migawa
Uczestnik
Uczestnik
Posty: 2
Rejestracja: 28 lip 2016, 18:21

Re: Powtarzalność wartości zmiennej

Nieprzeczytany post autor: migawa »

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.

Kod: Zaznacz cały

if(warunek1&&sprawdzam){
   zmienna=1;
   sprawdzam=false;
}
      
if(warunek2){
   zmienna=2;
   sprawdzam=true;
}
Oczywiście przed OnTick()

Kod: Zaznacz cały

int zmienna=0;
bool sprawdzam=true;
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.

ODPOWIEDZ