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

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

 Страниц (9): « 1 2 3 4 [5] 6 7 8 9 »   

> Описание: робот для автоматизации на интернет-странице с флешем
Kibor
Отправлено: 12 Января, 2014 - 03:27:19
Post Id



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


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




Наверно подобрать параметры

CODE:
int x1=100;
int y1=15;
int xn=stvol_X+55, yn=stvol_Y+36;


55 и 36 надо подобрать что бы эта точка была перед началом любых чисел но не залазила на надпись перед ними.
100 15 это размерность прямоугольника в который должно обязательно влезть хоть часть числа.

Если принцип понятен, то должно получиться... Я не тестировал.
(Добавление)
Строчку старого кода
X[0]=stvol_X+76; Y[0]=stvol_Y+36;
заменити этой. так как там уже смещения не надо.
X[0]=stvol_X; Y[0]=stvol_Y;
 
 Top
darow
Отправлено: 12 Января, 2014 - 03:31:31
Post Id



Пользователь
Наблюдатель


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




да я по первому сегодняшнему скрипту понял что уже не нужно указывать смещения, ок сейчас поиграюсь... я тоже думаю може 100 и 15 многова-то
 
 Top
Kibor
Отправлено: 12 Января, 2014 - 03:56:13
Post Id



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


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




Вот верный код. После теста.
CODE:
if (findimage(1, #im_stvol[0][0], 0, #stvol_X, #stvol_Y, 0, 0, xe, ye, z, z, z, z, z, z, 100, 1, -1)==1)
{
int x1=90;
int y1=17;
int xn=stvol_X+70, yn=stvol_Y+32;
int xn1=xn+x1, yn1=yn+y1;
int min=999999;

s: if (xn<xn1)
{
yn=stvol_Y+32;
s1: if (yn<yn1)
{
if (getcolor(xn, yn)!=16777215)
{
if (xn<min){min=xn; stvol_X=xn-2;}
}
yn++;
goto s1;
}
xn++;
goto s;
}

X[0]=stvol_X; Y[0]=stvol_Y+36;
X[1]=X[0]+7; Y[1]=Y[0]+13;
 
 Top
darow
Отправлено: 12 Января, 2014 - 10:33:45
Post Id



Пользователь
Наблюдатель


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




вот окончательный обкатанный вариант:
CODE:
if (findimage(1, #im_stvol[0][0], 0, #stvol_X, #stvol_Y, 0, 0, xe, ye, z, z, z, z, z, z, 100, 1, -1)==1)//находим стартовую точку
{
int x1=15;
int y1=1;
int xn=stvol_X+70, yn=stvol_Y+38;
int xn1=xn+x1, yn1=yn+y1;
int min=999999;

//mousemove (xn ,yn); sleep(1000);
s: if (xn<xn1)
{
yn=stvol_Y+38;
s1: if (yn<yn1)
{
if (getcolor(xn, yn)!=16777215)
{
if (xn<min){min=xn; stvol_X=xn-2;}
}
yn++;
goto s1;
}
xn++;
goto s;
}

X[0]=stvol_X; Y[0]=stvol_Y+38;
X[1]=X[0]+7; Y[1]=Y[0]+13;

(Добавление)
единственное в процессе обкатки мне показалось, что немного поиск пикселя занимает много времени особенно если увеличивать параметр: int y1=1; (ширина поиска пикселя)
поэтому я его сузил до максимума поэтому стало приемлемо...
(Добавление)
Так вообщем число мы научились находить, теперь попробуем производить действия с ним а именно сравнивать. Попробуем такую задачу решить: если kf1 меньше 5, то выдать звуковой сигнал:

CODE:
if (kf1<=5; beep (1000. 500))


че-то выдает ошибку
(Добавление)
немного натупил с синтаксисом:
CODE:
if (kf1<=5)
{
beep (1000, 500)
}


теперь ошибку не выдает но и звук не выдает
(Добавление)
видимо он не может сравнить 5 с kf1, ему нужно 5 сравнивать с числом а не с буквами
(Добавление)
как кибору указать kf1 не в буквенном а в числовом значении которое у него найдено в скрипте?
 
 Top
Kibor
Отправлено: 12 Января, 2014 - 11:42:45
Post Id



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


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




Как преобразовать строку в число
CODE:
if (formatsn(kf1)<=5)
{
beep (1000, 500)
}

(Добавление)
int y1=1; неправильно.
Где гарантия что в верхушке цифр будет самый левый пиксель?
Про точку я молчу вообще, хотя она не может быть первая но это пример что это не верно.
Надо проверять всю высоту цифр.
 
 Top
darow
Отправлено: 12 Января, 2014 - 12:03:48
Post Id



Пользователь
Наблюдатель


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




так сравнивать начали а теперь добавляем цикл, и пока кибор завис:
CODE:

int color, xe, ye;//разрешение экрана
getdisplay(color, xe, ye);//Узнать разрешение экрана

int stvol_X, stvol_Y;// координаты стартовой точки в волейболе
int k1_X[2], k1_Y[2];//координаты начала и конца рамки где искать 1коэф
int Ck1_x, Ck1_y;//координаты найденых цифр 1коэф 3шт
int fl1[10];// флаг, 1 если найдена цифра 1коэф
int rast_k1_x;//растояние от цифры до начала рамки поиска 1коэф

int n;
int CIF;
int X[2], Y[2];
string kf1="";// 1коэф
int z=10;
int razmerX[11];//тут размеры рисунков цифр

//Загрузка рисунков
int im_stvol[121][11];
loadimage (#im_stvol[0][0], "C:\citi\Image_ishody po partiyam.bmp");//рис стартовой точки в волейболе

//рис цифр

int ttt[20][20];loadimage (#ttt[0][0], "C:\citi\t.bmp");
int C_0[20][20];loadimage (#C_0[0][0], "C:\citi\0_citi.bmp");
int C_1[20][20];loadimage (#C_1[0][0], "C:\citi\1_citi.bmp");
int C_2[20][20];loadimage (#C_2[0][0], "C:\citi\2_citi.bmp");
int C_3[20][20];loadimage (#C_3[0][0], "C:\citi\3_citi.bmp");
int C_4[20][20];loadimage (#C_4[0][0], "C:\citi\4_citi.bmp");
int C_5[20][20];loadimage (#C_5[0][0], "C:\citi\5_citi.bmp");
int C_6[20][20];loadimage (#C_6[0][0], "C:\citi\6_citi.bmp");
int C_7[20][20];loadimage (#C_7[0][0], "C:\citi\7_citi.bmp");
int C_8[20][20];loadimage (#C_8[0][0], "C:\citi\8_citi.bmp");
int C_9[20][20];loadimage (#C_9[0][0], "C:\citi\9_citi.bmp");

razmerX[0]=imagewidth(#C_0[0][0]);
razmerX[1]=imagewidth(#C_1[0][0]);
razmerX[2]=imagewidth(#C_2[0][0]);
razmerX[3]=imagewidth(#C_3[0][0]);
razmerX[4]=imagewidth(#C_4[0][0]);
razmerX[5]=imagewidth(#C_5[0][0]);
razmerX[6]=imagewidth(#C_6[0][0]);
razmerX[7]=imagewidth(#C_7[0][0]);
razmerX[8]=imagewidth(#C_8[0][0]);
razmerX[9]=imagewidth(#C_9[0][0]);
razmerX[10]=imagewidth(#ttt[0][0]);

//поиск не белого пикселя
a: if (findimage(1, #im_stvol[0][0], 0, #stvol_X, #stvol_Y, 0, 0, xe, ye, z, z, z, z, z, z, 100, 1, -1)==1)//находим стартовую точку
{
int x1=15;
int y1=1;
int xn=stvol_X+70, yn=stvol_Y+38;
int xn1=xn+x1, yn1=yn+y1;
int min=999999;
s: if (xn<xn1)
{
yn=stvol_Y+38;
s1: if (yn<yn1)
{
if (getcolor(xn, yn)!=16777215)
{
if (xn<min){min=xn; stvol_X=xn-2;}
}
yn++;
goto s1;
}
xn++;
goto s;
}
X[0]=stvol_X; Y[0]=stvol_Y+38;
X[1]=X[0]+7; Y[1]=Y[0]+13;

int g=0;
kf1="";

lop:

//ищем по 1 цифре в рамке поиска. записываем координаты
if (findimage(1, #C_0[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"0"; g=0; goto ww;
}
if (findimage(1, #C_1[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"1"; g=1; goto ww;
}
if (findimage(1, #C_2[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"2"; g=2; goto ww;
}
if (findimage(1, #C_3[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"3"; g=3; goto ww;
}
if (findimage(1, #C_4[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"4"; g=4; goto ww;
}
if (findimage(1, #C_5[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"5"; g=5; goto ww;
}
if (findimage(1, #C_6[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"6"; g=6; goto ww;
}
if (findimage(1, #C_7[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"7"; g=7; goto ww;
}
if (findimage(1, #C_8[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"8"; g=8; goto ww;
}
if (findimage(1, #C_9[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"9"; g=9; goto ww;
}
if (findimage(1, #ttt[0][0], -1, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z , 100, 1, -1)==1)
{
kf1=kf1+"."; g=10; goto ww;
}
goto t;
ww:;

X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;

goto lop;

}
}
t:;

//messagebox(kf1);
//i: ;
//sleep 3000;
if (formatsn(kf1)<=5)
{
beep (1000, 500)
}
goto a;
 
 Top
Kibor
Отправлено: 12 Января, 2014 - 12:14:54
Post Id



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


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




а в чем зависание?
он крутит по кругу и если будет найден
 Цитата:
if (findimage(1, #im_stvol[0][0], 0, #stvol_X, #stvol_Y, 0, 0, xe, ye, z, z, z, z, z, z, 100, 1, -1)==1)//находим стартовую точку

будет поиск числа и если оно <=5 будет сигнал
Если не будет найдена стартовая точка или число или оно больше 5 будет цикл крутиться.
Остановить Контр шифт Z.
Что б не грузил комп ставить sleep
 Цитата:
sleep(50);
goto a;
 
 Top
darow
Отправлено: 12 Января, 2014 - 12:19:13
Post Id



Пользователь
Наблюдатель


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




супер, работает! видимо задержка не помешала
 
 Top
Kibor
Отправлено: 12 Января, 2014 - 12:19:39
Post Id



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


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




Ну надо перенести переменную:
 Цитата:

int color, xe, ye;//разрешение экрана
getdisplay(color, xe, ye);//Узнать разрешение экрана

int stvol_X, stvol_Y;// координаты стартовой точки в волейболе
int k1_X[2], k1_Y[2];//координаты начала и конца рамки где искать 1коэф
int Ck1_x, Ck1_y;//координаты найденых цифр 1коэф 3шт
int fl1[10];// флаг, 1 если найдена цифра 1коэф
int rast_k1_x;//растояние от цифры до начала рамки поиска 1коэф

int n;
int CIF;
int X[2], Y[2];
string kf1="";// 1коэф
int z=10;
int razmerX[11];//тут размеры рисунков цифр

//Загрузка рисунков
int im_stvol[121][11];
loadimage (#im_stvol[0][0], "C:\citi\Image_ishody po partiyam.bmp");//рис стартовой точки в волейболе

//рис цифр

int ttt[20][20];loadimage (#ttt[0][0], "C:\citi\t.bmp");
int C_0[20][20];loadimage (#C_0[0][0], "C:\citi\0_citi.bmp");
int C_1[20][20];loadimage (#C_1[0][0], "C:\citi\1_citi.bmp");
int C_2[20][20];loadimage (#C_2[0][0], "C:\citi\2_citi.bmp");
int C_3[20][20];loadimage (#C_3[0][0], "C:\citi\3_citi.bmp");
int C_4[20][20];loadimage (#C_4[0][0], "C:\citi\4_citi.bmp");
int C_5[20][20];loadimage (#C_5[0][0], "C:\citi\5_citi.bmp");
int C_6[20][20];loadimage (#C_6[0][0], "C:\citi\6_citi.bmp");
int C_7[20][20];loadimage (#C_7[0][0], "C:\citi\7_citi.bmp");
int C_8[20][20];loadimage (#C_8[0][0], "C:\citi\8_citi.bmp");
int C_9[20][20];loadimage (#C_9[0][0], "C:\citi\9_citi.bmp");

razmerX[0]=imagewidth(#C_0[0][0]);
razmerX[1]=imagewidth(#C_1[0][0]);
razmerX[2]=imagewidth(#C_2[0][0]);
razmerX[3]=imagewidth(#C_3[0][0]);
razmerX[4]=imagewidth(#C_4[0][0]);
razmerX[5]=imagewidth(#C_5[0][0]);
razmerX[6]=imagewidth(#C_6[0][0]);
razmerX[7]=imagewidth(#C_7[0][0]);
razmerX[8]=imagewidth(#C_8[0][0]);
razmerX[9]=imagewidth(#C_9[0][0]);
razmerX[10]=imagewidth(#ttt[0][0]);

//поиск не белого пикселя
a: kf1="";

if (findimage(1, #im_stvol[0][0], 0, #stvol_X, #stvol_Y, 0, 0, xe, ye, z, z, z, z, z, z, 100, 1, -1)==1)//находим стартовую точку
{
int x1=15;
int y1=1;
int xn=stvol_X+70, yn=stvol_Y+38;
int xn1=xn+x1, yn1=yn+y1;
int min=999999;
s: if (xn {
yn=stvol_Y+38;
s1: if (yn {
if (getcolor(xn, yn)!=16777215)
{
if (xn }
yn++;
goto s1;
}
xn++;
goto s;
}
X[0]=stvol_X; Y[0]=stvol_Y+38;
X[1]=X[0]+7; Y[1]=Y[0]+13;

int g=0;


lop:

//ищем по 1 цифре в рамке поиска. записываем координаты
if (findimage(1, #C_0[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"0"; g=0; goto ww;
}
if (findimage(1, #C_1[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"1"; g=1; goto ww;
}
if (findimage(1, #C_2[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"2"; g=2; goto ww;
}
if (findimage(1, #C_3[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"3"; g=3; goto ww;
}
if (findimage(1, #C_4[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"4"; g=4; goto ww;
}
if (findimage(1, #C_5[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"5"; g=5; goto ww;
}
if (findimage(1, #C_6[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"6"; g=6; goto ww;
}
if (findimage(1, #C_7[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"7"; g=7; goto ww;
}
if (findimage(1, #C_8[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"8"; g=8; goto ww;
}
if (findimage(1, #C_9[0][0], 16777215, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z, 100, 1, -1)==1)
{
kf1=kf1+"9"; g=9; goto ww;
}
if (findimage(1, #ttt[0][0], -1, #Ck1_x, #Ck1_y, X[0], Y[0], X[1], Y[1], z, z, z, z, z, z , 100, 1, -1)==1)
{
kf1=kf1+"."; g=10; goto ww;
}
goto t;
ww:;

X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;

goto lop;

}
}
t:;

//messagebox(kf1);
//i: ;
//sleep 3000;
if (formatsn(kf1)<=5)
{
beep (1000, 500)
}
goto a;
 
 Top
darow
Отправлено: 12 Января, 2014 - 12:20:05
Post Id



Пользователь
Наблюдатель


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




тестируем дальше
 
 Top
Страниц (9): « 1 2 3 4 [5] 6 7 8 9 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by