start:
проверяем наличие изображения 'A' в области 'OA', если есть - жмем кнопку 'a';
проверяем наличие изображения 'B' в области 'OB', если есть - жмем кнопку 'b';
проверяем наличие изображения 'C' в области 'OC', если есть - жмем кнопку 'c';
и так далее...
goto start;
алгоритм такой:
a;
b;
c;
a;
b;
c;
Проблема: если, например, в данный момент скрипт проверяет область 'B' и в этот же момент искомое изображение появится в области 'A' - кнопка 'а' не нажмется.;
Вопрос: как организовать параллельное выполнение функций поиска? Что то вроде:
a b c;
a b c;
Еще вопрос:
Что быстрее, при условии, что области поиска одинаковы
(Добавление)
код (Отобразить)
этот код работает, но хромает. Точность ~90-97%, а нужно 100
CODE:
Спасибо за терпение{
a:
win wind=window ("Flash Guitar Hero (FGH) — Opera", "Chrome_WidgetWin_1", -1);
activate (wind);
sleep (300)
int PosX_9999[1];
int PosY_9999[1];
int Image_9999[72][11];
int error=loadimage (#Image_9999[0][0], "C:\Users\Kolya\Documents\pause.bmp");
if (error<1)messagebox(error),pause (10000);
if (findimage(1, #Image_9999[0][0], 0, #PosX_2[0], #PosY_2[0], 972, 653, 1062, 693, wind)==1);
{
visualwindow(0, 806, 792, 1232, 866, 1921, 361 , 300, wind);
}
else
{
goto a;
}
pause 200;
beep(800,100);
enabletimer(0);
int accuracyq=2;
int accuracyqz=2;
int accuracyw=3;
int accuracywz=3;
int accuracye=2;
int accuracyez=2;
int accuracyr=2;
int accuracyrz=2;
int accuracyt=3;
int accuracytz=3;
int accuracyqall=2;
int accuracywall=2;
int accuracyeall=2;
int accuracyrall=2;
int accuracytall=2;
int Image_2[8][7];
int Image_2z[8][7];
int Image_4[8][6];
int Image_4z[8][6];
int Image_1[8][7];
int Image_1z[9][7];
int Image_3[8][7];
int Image_0[8][6];
int Image_0z[8][6];
int Image_rr[8][7];
int Image_all[9][7];
int Image_s_curs[25][35];
loadimage (#Image_s_curs[0][0], "C:\Users\Kolya\Documents\Image_s_curs.bmp");
loadimage (#Image_2[0][0], "C:\Users\Kolya\Documents\Image_1.bmp");
loadimage (#Image_2z[0][0], "C:\Users\Kolya\Documents\Image_1z.bmp");
loadimage (#Image_4[0][0], "C:\Users\Kolya\Documents\Image_x.bmp");
loadimage (#Image_4z[0][0], "C:\Users\Kolya\Documents\Image_4z.bmp");
loadimage (#Image_1[0][0], "C:\Users\Kolya\Documents\Image_c.bmp");
loadimage (#Image_1z[0][0], "C:\Users\Kolya\Documents\Image_cz.bmp");
loadimage (#Image_3[0][0], "C:\Users\Kolya\Documents\Image_v.bmp");
loadimage (#Image_0[0][0], "C:\Users\Kolya\Documents\Image_b.bmp");
loadimage (#Image_rr[0][0], "C:\Users\Kolya\Documents\Image_bz.bmp");
loadimage (#Image_0z[0][0], "C:\Users\Kolya\Documents\Image_0z.bmp");
loadimage (#Image_all[0][0], "C:\Users\Kolya\Documents\Image_all.bmp");
int PosX_2[1];
int PosY_2[1];
int PosX_2z[1];
int PosY_2z[1];
int PosX_4[1];
int PosY_4[1];
int PosX_4z[1];
int PosY_4z[1];
int PosX_1[1];
int PosY_1[1];
int PosX_1z[1];
int PosY_1z[1];
int PosX_0[1];
int PosY_0[1];
int PosX_0z[1];
int PosY_0z[1];
int PosX_3[1];
int PosY_3[1];
int PosX_3z[1];
int PosY_3z[1];
int PosX_allq[1];
int PosY_allq[1];
int PosX_allw[1];
int PosY_allw[1];
int PosX_alle[1];
int PosY_alle[1];
int PosX_allr[1];
int PosY_allr[1];
int PosX_allt[1];
int PosY_allt[1];
int PosX_s_curs[1];
int PosY_s_curs[1];
int v=0;
q:
int nq=findimage(1, #Image_2[0][0], 0, #PosX_2[0], #PosY_2[0], 823, 764, 897, 793, 0, 0, 0, 0, 0, 0, accuracyq, 0, wind); //ищем ноту q
int allq=findimage(1, #Image_all[0][0],0,#PosX_allq[0],#PosY_allq[0], 823, 764, 897, 793, 0, 0, 0, 0, 0, 0, accuracyqall, 0, wind);
int zq=findimage(1, #Image_2z[0][0], 0, #PosX_2z[0], #PosY_2z[0], 823, 764, 897, 793, 0, 0, 0, 0, 0, 0, accuracyqz, 0, wind);
if (allq==1||nq==1||zq==1);
{ //если есть - нажимаем
keydown('q');
// pause (v);
keyup('q');
// update(wind);
}
else
{
//update(wind);
}
w:
int nw=findimage(1, #Image_4[0][0], 0, #PosX_4[0], #PosY_4[0], 913, 759, 971, 796, 0, 0, 0, 0, 0, 0, accuracyw, 0, wind); //ищем ноту w
int allw=findimage(1, #Image_all[0][0], 0, #PosX_allw[0], #PosY_allw[0], 913, 759, 971, 796, 0, 0, 0, 0, 0, 0, accuracywall, 0, wind);
int zw=findimage(1, #Image_4z[0][0], 0, #PosX_4z[0], #PosY_4z[0], 913, 759, 971, 796, 0, 0, 0, 0, 0, 0, accuracywz, 0, wind);
if (allw==1||nw==1||zw==1);
{ //если есть - нажимаем
keydown('w');
// pause (v);
keyup('w');
// update(wind);
}
else
{
// update(wind);
}
e:
int ne=findimage(1, #Image_1[0][0], 0, #PosX_1[0], #PosY_1[0], 988, 758, 1034, 790, 0, 0, 0, 0, 0, 0, accuracye, 0, wind); //ищем ноту e
int alle=findimage(1, #Image_all[0][0], 0, #PosX_alle[0], #PosY_alle[0], 988, 758, 1034, 790, 0, 0, 0, 0, 0, 0, accuracyeall, 0, wind);
int ze=findimage(1, #Image_1z[0][0], 0, #PosX_1z[0], #PosY_1z[0], 982, 756, 1052, 795, 0, 0, 0, 0, 0, 0, accuracyez, 0, wind);
if (alle==1||ne==1||ze==1);
{ //если есть - нажимаем
keydown('e');
// pause (v);
keyup('e');
// update(wind);
}
else
{
// update(wind);
}
r:
int nr=findimage(1, #Image_3[0][0], 0, #PosX_3[0], #PosY_3[0], 1059, 768, 1124, 794, 0, 0, 0, 0, 0, 0, accuracyr, 0, wind); //ищем ноту r
int allr=findimage(1, #Image_all[0][0], 0, #PosX_allr[0], #PosY_allr[0], 1059, 768, 1124, 794, 0, 0, 0, 0, 0, 0, accuracyrall, 0, wind);
int zr=findimage(1, #Image_rr[0][0], 0, #PosX_3z[0], #PosY_3z[0], 1056, 761, 1127, 793, 0, 0, 0, 0, 0, 0, accuracyrz, 0, wind);
if
(allr==1 || nr==1 || zr==1);
{
keydown('{');
// pause (v);
keyup('{');
// update(wind);
}
else //если есть - нажимаем
{
// update(wind);
}
t:
int nt=findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 1131, 764, 1200, 796, 0, 0, 0, 0, 0, 0, accuracyt, 0, wind);
int allt=findimage(1, #Image_all[0][0], 0, #PosX_allt[0], #PosY_allt[0], 1131, 764, 1200, 796, 0, 0, 0, 0, 0, 0, accuracytall, 0, wind);
int zt=findimage(1, #Image_0z[0][0], 0, #PosX_0z[0], #PosY_0z[0], 1131, 764, 1200, 796, 0, 0, 0, 0, 0, 0, accuracytz, 0, wind); //ищем ноту t
if (allt==1 || nt==1 || zt==1);
{ //если есть - нажимаем
keydown('}');
// pause (v);
keyup('}');
// update(wind);
}
else
{
// update(wind);
}
}
goto q;
}
a:
win wind=window ("Flash Guitar Hero (FGH) — Opera", "Chrome_WidgetWin_1", -1);
activate (wind);
sleep (300)
int PosX_9999[1];
int PosY_9999[1];
int Image_9999[72][11];
int error=loadimage (#Image_9999[0][0], "C:\Users\Kolya\Documents\pause.bmp");
if (error<1)messagebox(error),pause (10000);
if (findimage(1, #Image_9999[0][0], 0, #PosX_2[0], #PosY_2[0], 972, 653, 1062, 693, wind)==1);
{
visualwindow(0, 806, 792, 1232, 866, 1921, 361 , 300, wind);
}
else
{
goto a;
}
pause 200;
beep(800,100);
enabletimer(0);
int accuracyq=2;
int accuracyqz=2;
int accuracyw=3;
int accuracywz=3;
int accuracye=2;
int accuracyez=2;
int accuracyr=2;
int accuracyrz=2;
int accuracyt=3;
int accuracytz=3;
int accuracyqall=2;
int accuracywall=2;
int accuracyeall=2;
int accuracyrall=2;
int accuracytall=2;
int Image_2[8][7];
int Image_2z[8][7];
int Image_4[8][6];
int Image_4z[8][6];
int Image_1[8][7];
int Image_1z[9][7];
int Image_3[8][7];
int Image_0[8][6];
int Image_0z[8][6];
int Image_rr[8][7];
int Image_all[9][7];
int Image_s_curs[25][35];
loadimage (#Image_s_curs[0][0], "C:\Users\Kolya\Documents\Image_s_curs.bmp");
loadimage (#Image_2[0][0], "C:\Users\Kolya\Documents\Image_1.bmp");
loadimage (#Image_2z[0][0], "C:\Users\Kolya\Documents\Image_1z.bmp");
loadimage (#Image_4[0][0], "C:\Users\Kolya\Documents\Image_x.bmp");
loadimage (#Image_4z[0][0], "C:\Users\Kolya\Documents\Image_4z.bmp");
loadimage (#Image_1[0][0], "C:\Users\Kolya\Documents\Image_c.bmp");
loadimage (#Image_1z[0][0], "C:\Users\Kolya\Documents\Image_cz.bmp");
loadimage (#Image_3[0][0], "C:\Users\Kolya\Documents\Image_v.bmp");
loadimage (#Image_0[0][0], "C:\Users\Kolya\Documents\Image_b.bmp");
loadimage (#Image_rr[0][0], "C:\Users\Kolya\Documents\Image_bz.bmp");
loadimage (#Image_0z[0][0], "C:\Users\Kolya\Documents\Image_0z.bmp");
loadimage (#Image_all[0][0], "C:\Users\Kolya\Documents\Image_all.bmp");
int PosX_2[1];
int PosY_2[1];
int PosX_2z[1];
int PosY_2z[1];
int PosX_4[1];
int PosY_4[1];
int PosX_4z[1];
int PosY_4z[1];
int PosX_1[1];
int PosY_1[1];
int PosX_1z[1];
int PosY_1z[1];
int PosX_0[1];
int PosY_0[1];
int PosX_0z[1];
int PosY_0z[1];
int PosX_3[1];
int PosY_3[1];
int PosX_3z[1];
int PosY_3z[1];
int PosX_allq[1];
int PosY_allq[1];
int PosX_allw[1];
int PosY_allw[1];
int PosX_alle[1];
int PosY_alle[1];
int PosX_allr[1];
int PosY_allr[1];
int PosX_allt[1];
int PosY_allt[1];
int PosX_s_curs[1];
int PosY_s_curs[1];
int v=0;
q:
int nq=findimage(1, #Image_2[0][0], 0, #PosX_2[0], #PosY_2[0], 823, 764, 897, 793, 0, 0, 0, 0, 0, 0, accuracyq, 0, wind); //ищем ноту q
int allq=findimage(1, #Image_all[0][0],0,#PosX_allq[0],#PosY_allq[0], 823, 764, 897, 793, 0, 0, 0, 0, 0, 0, accuracyqall, 0, wind);
int zq=findimage(1, #Image_2z[0][0], 0, #PosX_2z[0], #PosY_2z[0], 823, 764, 897, 793, 0, 0, 0, 0, 0, 0, accuracyqz, 0, wind);
if (allq==1||nq==1||zq==1);
{ //если есть - нажимаем
keydown('q');
// pause (v);
keyup('q');
// update(wind);
}
else
{
//update(wind);
}
w:
int nw=findimage(1, #Image_4[0][0], 0, #PosX_4[0], #PosY_4[0], 913, 759, 971, 796, 0, 0, 0, 0, 0, 0, accuracyw, 0, wind); //ищем ноту w
int allw=findimage(1, #Image_all[0][0], 0, #PosX_allw[0], #PosY_allw[0], 913, 759, 971, 796, 0, 0, 0, 0, 0, 0, accuracywall, 0, wind);
int zw=findimage(1, #Image_4z[0][0], 0, #PosX_4z[0], #PosY_4z[0], 913, 759, 971, 796, 0, 0, 0, 0, 0, 0, accuracywz, 0, wind);
if (allw==1||nw==1||zw==1);
{ //если есть - нажимаем
keydown('w');
// pause (v);
keyup('w');
// update(wind);
}
else
{
// update(wind);
}
e:
int ne=findimage(1, #Image_1[0][0], 0, #PosX_1[0], #PosY_1[0], 988, 758, 1034, 790, 0, 0, 0, 0, 0, 0, accuracye, 0, wind); //ищем ноту e
int alle=findimage(1, #Image_all[0][0], 0, #PosX_alle[0], #PosY_alle[0], 988, 758, 1034, 790, 0, 0, 0, 0, 0, 0, accuracyeall, 0, wind);
int ze=findimage(1, #Image_1z[0][0], 0, #PosX_1z[0], #PosY_1z[0], 982, 756, 1052, 795, 0, 0, 0, 0, 0, 0, accuracyez, 0, wind);
if (alle==1||ne==1||ze==1);
{ //если есть - нажимаем
keydown('e');
// pause (v);
keyup('e');
// update(wind);
}
else
{
// update(wind);
}
r:
int nr=findimage(1, #Image_3[0][0], 0, #PosX_3[0], #PosY_3[0], 1059, 768, 1124, 794, 0, 0, 0, 0, 0, 0, accuracyr, 0, wind); //ищем ноту r
int allr=findimage(1, #Image_all[0][0], 0, #PosX_allr[0], #PosY_allr[0], 1059, 768, 1124, 794, 0, 0, 0, 0, 0, 0, accuracyrall, 0, wind);
int zr=findimage(1, #Image_rr[0][0], 0, #PosX_3z[0], #PosY_3z[0], 1056, 761, 1127, 793, 0, 0, 0, 0, 0, 0, accuracyrz, 0, wind);
if
(allr==1 || nr==1 || zr==1);
{
keydown('{');
// pause (v);
keyup('{');
// update(wind);
}
else //если есть - нажимаем
{
// update(wind);
}
t:
int nt=findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 1131, 764, 1200, 796, 0, 0, 0, 0, 0, 0, accuracyt, 0, wind);
int allt=findimage(1, #Image_all[0][0], 0, #PosX_allt[0], #PosY_allt[0], 1131, 764, 1200, 796, 0, 0, 0, 0, 0, 0, accuracytall, 0, wind);
int zt=findimage(1, #Image_0z[0][0], 0, #PosX_0z[0], #PosY_0z[0], 1131, 764, 1200, 796, 0, 0, 0, 0, 0, 0, accuracytz, 0, wind); //ищем ноту t
if (allt==1 || nt==1 || zt==1);
{ //если есть - нажимаем
keydown('}');
// pause (v);
keyup('}');
// update(wind);
}
else
{
// update(wind);
}
}
goto q;
}
(Добавление)
код_второй кусок (Отобразить)
этот код работает, но хромает. Точность ~90-97%, а нужно 100
CODE:
Еще раз Спасибо////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CREATE_TIMER(0, 10000)
{
if (int aq=getkeystate(q), int aw=getkeystate(w), int ae=getkeystate(e), int ar=getkeystate({), int at=getkeystate(}));
(aq!=1&&aw!=1&&ae!=1&&ar!=1&&at!=1);
{
if
(int check=findimage(1, #Image_s_curs[0][0], 0, #PosX_s_curs[0], #PosY_s_curs[0], 993, 634, 1035, 684, wind)==1);
{
mouse(LEFT, 1317, 399, 1, wind);
}
else
{
}
}
else
{
}
{
if (getkeystate(END)==1);
{
close();
}
else
{
}
}
CREATE_TIMER(0, 10000)
{
if (int aq=getkeystate(q), int aw=getkeystate(w), int ae=getkeystate(e), int ar=getkeystate({), int at=getkeystate(}));
(aq!=1&&aw!=1&&ae!=1&&ar!=1&&at!=1);
{
if
(int check=findimage(1, #Image_s_curs[0][0], 0, #PosX_s_curs[0], #PosY_s_curs[0], 993, 634, 1035, 684, wind)==1);
{
mouse(LEFT, 1317, 399, 1, wind);
}
else
{
}
}
else
{
}
{
if (getkeystate(END)==1);
{
close();
}
else
{
}
}