Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.19 Добавление Блока ЛОГИКИ в Визуальный редактор кода

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

1. Kibor - 20 Декабря, 2016 - 09:40:57 - перейти к сообщению
Вышла новая версия Визуального редактора Версия 6.00. Новый Визуальный редактор кода.

Ниже описан рабочий, но устаревший и не поддерживаемый.
========
В версии 5.19 добавлен БЛОК ЛОГИКИ в Визуальный редактор кода Кибор.

Его назначение делать разветвление в работе визуальной схемы в зависимости от условий.

Разветвление возможно:
Линия ПЕРЕХОД - если условие блока выполнено.
Пример:
Если условие в блоке
1<5
то управление пойдет по линии ПЕРЕХОД

Линия ПЕРЕХОД ПРИ НЕПРАВДА - если условие блока НЕ выполнено.
Пример:
Если условие в блоке
1==5
то управление пойдет по линии ПЕРЕХОД ПРИ НЕПРАВДА

В диалоговом окне Блока Логики есть два поля.

Верхнее служит для введения любого программного кода выполняемого ПЕРЕД проверкой условия.

Нижнее служит для введения самого условия.
Запись производится такого типа:
1<8

Пример ввода условия:
1==1 если 1 равно 1
1!=25 если 1 НЕ равно 25
1<5 если 1 меньше 5
1==1 && 1<5если 1 равно 1 И 1 меньше 5
1==1 || 1<5если 1 равно 1 ИЛИ 1 меньше 5
(1==1 || 1<5) && (17<=1 || 25>=5)если (1 равно 1 ИЛИ 1 меньше 5) И (17 меньше или равно 1 ИЛИ 25 больше или равно 5)

С блока логики необходимо вести две ветви. ПЕРЕХОД и ПЕРЕХОД ПРИ НЕПРАВДА

В Максимальной версии Кибор можно реализовывать более 3 блоков логики.
Иначе логику можно реализовывать с помощью блоков кода и переходов goto на метки.

ФОРМАТ ИЗМЕНЕН. Для открытия старых проектов необходимо выбрать в меню Файл Открыть старую версию до 5.19

Видео демонстрирующее применение Логического блока.


Схема с блоком логики. Данная схема выводит 5 раз сообщение с счетчиком переменной a. Переменную a мы объявили в блоке start a=0


Нажмите для увеличения
2. Dantes3000 - 20 Декабря, 2016 - 10:40:28 - перейти к сообщению
Значит теперь не обязательно использовать goto?
(Добавление)
А можно еще сделать сохранение ехе с выбором места и названием?
3. Kibor - 20 Декабря, 2016 - 10:43:42 - перейти к сообщению
 Dantes3000 пишет:
Значит теперь не обязательно использовать goto?

В многих местах можно не использовать. Используйте логический блок. С ним удобнее и связи показаны.

 Dantes3000 пишет:
А можно еще сделать сохранение ехе с выбором места и названием?

Название берет от названия скрипта. Ну а место.. Может как то если не забуду.
4. Dantes3000 - 21 Декабря, 2016 - 05:41:46 - перейти к сообщению
А будет какой-то changelog после обновления? Типа: исправил баг, добавил новый.
Вижу вот шрифт поменялся, и всё?
5. Kibor - 21 Декабря, 2016 - 05:59:11 - перейти к сообщению
А что описывать. Пользователям ничего не надо знать нового.
Шрифт поменял. Сделал его масштабируемым при изменение масштаба в визуальном редакторе. Одни удобства. Изучать не надо то ничего.
6. Dantes3000 - 21 Декабря, 2016 - 14:12:20 - перейти к сообщению
Ну вот допустим делаю я скрипт...и что-то неполучается, забросил. А потом это оказалось багом, который в одном из обновлений пофиксили.
Обновился Кибор, вылазит окошко: Исправлен баг такой-то. Графические изменения. Добавлена функция (и ссылка на форум).
Очень удобно
7. Kibor - 21 Декабря, 2016 - 14:20:00 - перейти к сообщению
Если я буду описывать каждую правку и присваивать ей новую версию или тему, то в номере версии будет ооочень цифр много, а на форуме тем.
Если добавлена новая функция или инструмент, то обязательно создается тема и новая версия. А внутренние правки пользователи чаще всего и не замечают.
Что значит не получилось и оказалось багом..
Если делается все согласно документации и не получается - пишите на форум. Если баг исправлять надо. Только намного чаще это не баги а ошибки использования Кибор.
8. rastaman - 23 Декабря, 2016 - 07:50:03 - перейти к сообщению
беда у меня с кликами
получаетя вот так(для просмотра ссылки Вам необходимо авторизоваться) Растерялся
9. Kibor - 23 Декабря, 2016 - 07:53:01 - перейти к сообщению
и?
где проект?
10. rastaman - 23 Декабря, 2016 - 07:55:58 - перейти к сообщению
int k, x[30], y[30], n=0;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[51][43];

start_();

if (findimage_(#Image_0_KIB[0][0], 0, 2222, 0, 1, 8, 8, 0, -1, 33, 88, 30, 0, 0, ex_KIB, ey_KIB, #k, #x[0], #y[0])>0) goto m_KIB2;
else goto m_KIB4;
m_KIB2: mouse_(0, 1, x[n], y[n], 0);
n++;
if (n<k) goto m_KIB2;
else goto m_KIB4;
m_KIB4:



function start_()
{
load_image_();
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}


function mouse_(int p1, int m, int xm, int ym, int p2)
{
pause(p1);
if (m==1) sendmouse(LEFT, xm, ym, w_KIB);
if (m==2) sendmouse(MIDDLE, xm, ym, w_KIB);
if (m==3) sendmouse(RIGHT, xm, ym, w_KIB);
if (m==4) sendmousedown(LEFT, xm, ym, w_KIB);
if (m==5) sendmousedown(MIDDLE, xm, ym, w_KIB);
if (m==6) sendmousedown(RIGHT, xm, ym, w_KIB);
if (m==7) sendmouseup(LEFT, xm, ym, w_KIB);
if (m==8) sendmouseup(MIDDLE, xm, ym, w_KIB);
if (m==9) sendmouseup(RIGHT, xm, ym, w_KIB);
if (m==10) sendmousemove(xm, ym, w_KIB);
pause(p2);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, w_KIB); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, w_KIB); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){sendmouse(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==2){sendmouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==3){sendmouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==4){sendmousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==5){sendmousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==6){sendmousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==7){sendmouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==8){sendmouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==9){sendmouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==10){sendmousemove(xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Program Files (x86)\Kibor\клик по кругам\тест.bmp");
}

Powered by ExBB FM 1.0 Final