Как правильно зациклить проверку

Ответить
Аватара пользователя
EnigmaNN

Как правильно зациклить проверку

Сообщение EnigmaNN »

Приветствую.

Необходимо создать цикл проверки следующего характера:



1. Встаём на тестируемый пиксель

2. Если цвет пикселя соответствует значению, то действие тогда

3. Щелчок мышью по области экрана

4. Проверяем пиксель снова , начиная с п. 1.

5. Конец проверки





Но удалось написать только так





Код:

Код: Выделить всё

   Mousemove(-143, 192, 0)
   Sleep(2000)
   if PixelGetColor(-143, 192) = 6698522  Then
	  Sleep(2000)
	  Mousemove(-196, 390, 0)
	  Sleep(5000)
	  MouseClick("left", -196, 390, 1, 10)
   Else
	  MouseClick("left", 70, 688, 1, 10)
	  Sleep(5000)
   EndIf

Скрипт работает, но не повторяет проверку

Не хватает знаний, чтобы достичь нужного. Буду благодарна за помощь
Аватара пользователя
Iska

Re: Как правильно зациклить проверку

Сообщение Iska »

EnigmaNN, циклическая проверка нуждается в наличии цикла:
Language Reference - Loops Statements
. В Вашем случае подойдёт как
Keyword While...WEnd
, так и
Keyword Do...Until
.
Аватара пользователя
EnigmaNN

Re: Как правильно зациклить проверку

Сообщение EnigmaNN »

Спасибо за ответ

решение было найдено таким способом





Код:

Код: Выделить всё

for $i=1 to 200
   Mousemove(-145, 198, 0)
   Sleep(2000)
   if PixelGetColor(-145, 198) = 14332707  Then
	  ExitLoop
   Else
	  Mousemove(-196, 390, 0)
	  Sleep(5000)
	  MouseClick("left", -196, 390, 1, 10);
   EndIf
Next



все ли верно в отношении синтаксиса?
Аватара пользователя
Iska

Re: Как правильно зациклить проверку

Сообщение Iska »

EnigmaNN, если Вам надо проверить ровно 200 раз, то да. Если надо Вам проверять до наступления какого-либо условия (или бесконечно), то нет, пользуйте:


Цитата Iska:



В Вашем случае подойдёт как Keyword While...WEnd, так и Keyword Do...Until.
Как правильно зациклить проверку




Проблема в другом. Описанная Вами постановка задачи не соответствует ни первому, ни второму приведённым кодам. В первом коде откуда-то взялась ветвь Else, отсутствующая в постановке задачи, во втором — выход из цикла.
Ответить

Вернуться в «AutoIt»