Minilog: chwilowo mam jakas przerwe z notkami, glownie z powodu poprawek graficznych i w skrypcie (poza tym aseeon wspomnial ze mam kiepskie kolorowanie skladni wiec nad tym tez bede musial posiedziec). Czesciowo juz jest skonczony dalszy kurs o autoit :)

Kurs Autoit część 5

W piątej części kursu omówimy pętle

Pętle
Pętla pozwala nam na cykliczne wykonywanie określonego kodu, inaczej mówiąc pozwala nam wykonywać dany fragment kodu określoną ilość razy. W autoit możemy korzystać 3 typów pętli For [...] Next, While [...] WEnd, Do [...] Until

For [...] Next
Pętla oparta na wyrażeniach, przyjmuje 2 wyrażenia dla for

For $<zmienna> = <start> To <stop> [Step <stepval>]
    kod
    ...
Next

$ - zmiana użyta będzie do liczenia
start - liczba początkowa, od której ma zacząć obliczać skrypt
stop - liczna końcowa, na której skrypt ma zaprzestać obliczeń
stepval [opcjonalne] - wartość liczbowa o jaką wartość pętli jest zwiększana przy każdym powtórzeniu

Przykład

For $i = 10 to 1 Step -1
    MsgBox(4096, "Odliczanie!", $i)
Next
MsgBox(4096,"Test", "Start!")

Skrypt zacznie wyświetlać okienko z odliczaniem od 10 do 1, po czym pokaże nowe okno Start

While [...] WEnd
While [...] WEnd to mój ulubiony rodzaj pętli, gdyż najczęściej właśnie to stosuje (przykład -> autoclicker).

While <wyrażenie>
    kod
    ...
WEnd

Jeżeli wyrażenie jest prawdziwe (true), pętle będzie wykonywać kod, aż do znacznika zakończenia (WEnd). Pętla będzie wykonywana do póki wyrażenie nie zwróci wartości fałszywej (false). Należy pamiętaj że pętla sprawdza dokładnie wyrażenie przez rozpoczęciem działania, dlatego też w przypadku gdy operujemy na liczbach a wynik będzie wynosił 0 pętla nie rozpocznie działania.

$i = 0
While $i <= 5
    MsgBox(0, "Wartość wynosi $i :", $i)
    $i = $i + 1
WEnd

Przypisujemy dla zmiennej $i wartość 0 (wartość początkowa), następnie w parametrach pętli podajemy że ma ona trwać do póki wartość nie będzie równa 5. W czasie trwania pętli będziemy wyświetlać okienko z aktualną wartością. $i = $i + 1 działanie polega na zmianie aktualnej wartość zmiennej $i. Skrypt pobiera wartość ze zmiennej $i i podnosi jej wartość o 1

Do [...] Until
To ostatnia pętla jaką mamy do dyspozycji w autoit. Jak wszystkie inne pętle ona również bazuje na wyrażeniach. Pętla rozpoczyna działanie aż do momentu osiągnięcia wartości true. W przeciwieństwie do poprzednich pętli do until jest wykonywane od razu, a sprawdzanie wyrażenia ma miejsce w czasie działania pętli. Dlatego też w przypadku gdy wartość będzie 0 lub false, pętla zostanie wykonana raz (w przeciwieństwie do poprzednich pętli)

Do
    kod
    ...
Until <wyrażenie>

Kod zawarty między Do i Until jest wykonywany do póki wyrażenie jest prawdziwe (True)

$i = 0
Do
    MsgBox(0, "Wartość wynosi $i :", $i)
    $i = $i + 1
Until $i = 5

Przedstawiony skrypt jest podobny do tego z pętli While, skrypt będzie wyświetlał okienko do póki zmienna $i nie osiągnie wartości 5


To na tyle w tej części kursu :)






gravatar #24 | Sobol (2009-07-10)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Normalnie już nie mam sił. Proszę napisz skąd mogłbym się dowiedzieć, lub napisz jak lączyć pętle. Mianowicie chciał bym zrobić bota, który by wykonywał szereg petli pokolei a w trakcie wykonywania tych pętli sprawdzal caly czas czy nie dostalem Disconect i w razie DC zatrzymal by tamte petle i zaczol by robic pętle ktora by zareagowala na to DC. Zrobiłem już bota który potrafi robić pętle, które ładnie się na wzajem pokrywają, ale nie potrafię zrobić własnie tego, aby w razie DC zatrzymać te inne pętle i rozpoczać działanie nowej. z góry dzięki za odpowiedź.



gravatar #25 | Sobol (2009-07-10)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Jesli chodzi o pętle która reaguje na DC to mam ja zrobiona ale nie potrafię zrobić tak by zadziałała w trakcie wykonywania innych petli. Osobno gdy symuluje DC i włączam skrypt który ma reagowac na petle, wszystko dziala poprawnie, ale gdy polaczę z innymi pętlami to nie reaguje ;/ przepraszam za pisownie ale jestem zmeczony i jest 3 rano ;/



gravatar #26 | thid (2009-07-10)
Opera/9.63 (Windows NT 5.1; U; pl) Presto/2.1.1

hmm…mozesz uzyc do tego while lub do dajesz to jako glowna petle lub tez wykorzystujesz zmienna z tej petli w pozostalych petlach. Robisz skrypt ktory sprawdza czy jestes polaczony i bazujesz na True/False (lub 1/0) jezeli wartosc zmiennej wynosi True w tedy wykonywane sa pozostale petle.
np While $i <= 5 AND $a == True to sprawi ze petla bedzie sie wykonywac do poki zostana spelnione dwa warunki dla $i oraz $a :)
Mam nadzieje ze zrozumialem o co ci chodzi, jezeli nie to opisz lepiej problem to postaram sie to jakos wytlumaczyc



gravatar #27 | sobol (2009-07-10)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

wielkie dzieki gdy wprowadzilem aby zmienna sprawdzala piksele w kazdej petli, wkoncu przy kazdej petli wlancza sie auto logowanie. a tak poza tym nie wiedzial bys moze skad mogl bym sie wiecej dowiedziec na temat programowania w tym jezyku ? ja poczatkujacy jestem ale bardzo lubie programowac i programowanie w autoit bardzo mnie wciagnelo, a nie chcial bym Cie meczyc ;]. Chodzi mi o jakis juz bardziej zaawansowny kurs albo i nawet kurs w ktorym znalazl bym odpowiedzi na wszystkie pytania jak co napisac (wystarczy opis wszystkich funkcji). mozna napisac ze jestem na etapie takim ze potrafie odczytywac kolory piksel, i potem wykozystywac to no ale ten program z tego co wiem to potrafi o wiele wiecej a mnie interesuje to wiecej ;]. i wspomniales o glownej petli jak zrobic taka petle ?



gravatar #29 | thid (2009-07-10)
Opera/9.63 (Windows NT 5.1; U; pl) Presto/2.1.1

co do glownej petli to mialem na mysli jakis main na zasadzie while True ktore caly czas by sprawdzalo polaczenie.
Co do tutoriali to musze skonczyc jeszcze 2 tematy i zaczne omawiac juz bardziej rozbudowane rzeczy



gravatar #31 | Sobol (2009-07-11)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Na zaboj potrzebny mi skrypt ktory doslownie w tym samym czasie moze przycisnac guzik i kliknac w jakies miejsce myszka. jesli bede go mial to dokoncze swojego bota w krudce. juz ma 9 000 linijek skryptu OMG i to w 1 tydzien zrobilem lol



gravatar #32 | Sobol (2009-07-11)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

dzieki za wszystko ;] bede czekal na nowe lekcje. sry za spam ;/



gravatar #35 | Pro (2009-07-23)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10

Powiedzmy ze mamy współrzędne 500,500 o kolorze X. Chciałbym postawić warunek dla którego moment zmiany z X na kolor na 9690862 (tak wynika z PixelGetColor) wywołuje kolejne zadanie.



gravatar #36 | thid (2009-07-23)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1

ok i z czym masz problem ?



gravatar #37 | Pro (2009-07-24)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10

RUCH 1
MouseMove (200, 200,10)

RUCH 2
MouseMove (400, 200,10)

RUCH 3
$dziwgnia1=0
for $dzwignia1=0 to 0 step 0
$color1=pixelgetcolor ( 900,500)
If $color1=16777215 Then MouseClick (“left”, 400, 400 ,1)
Next

RUCH 4
MouseMove (200, 400,10)

RUCH 5
MouseMove (200, 200,10)

Fajnie. Mam reakcje na kolor (biały) o okreslonych wspolzednych. z tym ze teraz wszystko sie zapętla i wykonuje RUCH 3

Co mam zmienic zeby dokonczyc kwadracik??

I jak tego sie dowiem to odrazu chcialbym sie dowiedziec jak zapętlic całość. While 1…....... Wend ?? :)



gravatar #38 | pro (2009-07-24)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10

podaje gg, bo tak sie chyba nie dogadamy :P
8628630



gravatar #39 | thid (2009-07-25)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1

chyba zrobie forum bo widze ze sie przyda :)



gravatar #40 | Pro (2009-07-25)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10

Napewno każdemu bedzie bardzo milo jak zrobisz forum. Ale moze zanim to zrobisz to odezwij sie w wolniej chwili do mnie na gg :) 8628630
bede wdzieczny jak mi coś podpowiesz xD




Dodaj komentarz


*pola: Autor, Adres E-mail, Treść są wymagane
*Textile: Włączone

Autor
Adres E-mail
Odnośnik do strony
Treść

test
test
test