Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (5): [1] 2 3 4 5 »   

> Описание: Оператор for - циклы
Kibor
Отправлено: 06 Февраля, 2014 - 00:37:27
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Добавлен оператор for

Назначение - организация циклов с проверкой условия

CODE:
for (int a=0; a<5; a++)
{
messagebox ("цикл");
}


Пример как ожидать в цикле появление изображения на экране 5 секунд. Если изображения не появилось - выйти из цикла.

CODE:
for (int t=gettime(); gettime()-t<5000; sleep(20))
{
if (findimage(1, #Image[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)
{
messagebox ("нашлося...");
goto q;
}
}
messagebox ("не...");
q:;
 
 Top
Stanislaw
Отправлено: 09 Февраля, 2014 - 22:34:08
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 56
Дата рег-ции: Дек. 2013  
Репутация: 2




Здорово!!! Поклон
 
 Top
Kibor
Отправлено: 09 Февраля, 2014 - 22:45:32
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Stanislaw пишет:
Здорово!!!


Да, я припозднился с ним Радость
 
 Top
Stanislaw
Отправлено: 09 Февраля, 2014 - 22:47:53
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 56
Дата рег-ции: Дек. 2013  
Репутация: 2




 Kibor пишет:
Добавлен оператор for

Назначение - организация циклов с проверкой условия

CODE:
for (int a=0; a<5; a++)
{
messagebox ("цикл");
}


Пример как ожидать в цикле появление изображения на экране 5 секунд. Если изображения не появилось - выйти из цикла.

CODE:
for (int t=gettime(); gettime()-t<5000; sleep(20))
{
if (findimage(1, #Image[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)
{
messagebox ("нашлося...");
goto q;
}
}
messagebox ("не...");
q:;



третий параметр а++ необязательный? или вместо него стоит sleep(20)? если шаг будет 20,то приемлема запись типа t=t+20 ?
 
 Top
Kibor
Отправлено: 09 Февраля, 2014 - 23:08:22
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Stanislaw пишет:
третий параметр а++ необязательный? или вместо него стоит sleep(20)? если шаг будет 20,то приемлема запись типа t=t+20 ?


Обязательный, хотя надо поправить и сделать допустимым писать пустую инструкцию.

Код
CODE:
for (int t=gettime(); gettime()-t<5000; sleep(20))
{
if (findimage(1, #Image[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)
{
messagebox ("нашлося...");
goto q;
}
}

по логике такой аналогично
CODE:
int t=gettime();
a: if (gettime()-t<5000)
{
if (findimage(1, #Image[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)
{
messagebox ("нашлося...");
goto q;
}
sleep(20);
goto a;
}

 Stanislaw пишет:
приемлема запись типа t=t+20 ?

Да. Можно что угодно ставить в параметры если соответствут синтаксису.

Даже вызов функции если надо.

Можно в проверке условия применять сложные выражения с || && как в if
CODE:
for (int t=0; gettime()-t<5000 || t<100; t=t+(20-rand(19, 22)))
{

}


CODE:
for (int t=0; t<5; messagebox (t))t++;
CODE:
for (int t=0; t<10; t=t+2)messagebox (t);

(Добавление)
Даже так можно
CODE:
for (int t=gettime(); gettime()-t<5000 && findimage(1, #Image[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==0; sleep(20)){}
 
 Top
barok2
Отправлено: 21 Октября, 2014 - 12:21:18
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 12
Дата рег-ции: Окт. 2014  
Репутация: 0




Без goto можно обойтись, когда ждем окно.

for (int a=0; findimage(1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, xe, ye, -1)<>0; sleep(50) )
(Добавление)
сорри, такое уже есть.
(Добавление)
видимо и первый параметр не обязательный? Цикл продолжится при true второго выражения?
 
 Top
Skycrew
Отправлено: 24 Октября, 2014 - 14:52:04
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




Так ведь давно уже работают циклы FOR, пользуюсь уже почти месяц...
Что-то принципиально в них изменилось?
 
 Top
Kibor
Отправлено: 24 Октября, 2014 - 15:32:50
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




ничего
 
 Top
Skycrew
Отправлено: 24 Октября, 2014 - 17:16:21
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




 Kibor пишет:
ничего

А в чем смысл обновления? )
 
 Top
Kibor
Отправлено: 24 Октября, 2014 - 17:21:28
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Какого?
эта тема от 6 Февраля. просто поднята.
А обновление - доработка внутренняя. поправка программной установки расширения экрана
senddisplay(). она давно описана.
Если появляется что новое - описывается как версия новая.
 
 Top
Страниц (5): [1] 2 3 4 5 »
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by