Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 3.17 Оператор for - циклы

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

1. Kibor - 05 Февраля, 2014 - 16:37:27 - перейти к сообщению
Добавлен оператор 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:;
2. Stanislaw - 09 Февраля, 2014 - 14:34:08 - перейти к сообщению
Здорово!!! Поклон
3. Kibor - 09 Февраля, 2014 - 14:45:32 - перейти к сообщению
 Stanislaw пишет:
Здорово!!!


Да, я припозднился с ним Радость
4. Stanislaw - 09 Февраля, 2014 - 14:47:53 - перейти к сообщению
 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 ?
5. Kibor - 09 Февраля, 2014 - 15:08:22 - перейти к сообщению
 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)){}
6. barok2 - 21 Октября, 2014 - 04:21:18 - перейти к сообщению
Без 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 второго выражения?
7. Skycrew - 24 Октября, 2014 - 06:52:04 - перейти к сообщению
Так ведь давно уже работают циклы FOR, пользуюсь уже почти месяц...
Что-то принципиально в них изменилось?
8. Kibor - 24 Октября, 2014 - 07:32:50 - перейти к сообщению
ничего
9. Skycrew - 24 Октября, 2014 - 09:16:21 - перейти к сообщению
 Kibor пишет:
ничего

А в чем смысл обновления? )
10. Kibor - 24 Октября, 2014 - 09:21:28 - перейти к сообщению
Какого?
эта тема от 6 Февраля. просто поднята.
А обновление - доработка внутренняя. поправка программной установки расширения экрана
senddisplay(). она давно описана.
Если появляется что новое - описывается как версия новая.

Powered by ExBB FM 1.0 Final