Kibor |
Отправлено: 13 Января, 2014 - 21:13:11
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Я не помню что там вчера. Я написал как сегодня было..
Так в чем проблема? В коде все понятно что я привел? Если да, то можно самому сделать как хочешь..
darow пишет: 1) сканирует К1
2) К1 сравнивает с числом:
-если верно, то выдавать звук, пропускать сканирование К2(в сканировании нет смысла), переходит вновь на цикл
- если неверно, то переходить к сканированию К2
3) сканирует К2
4) К2 сравнивает с числом:
- если верно, то выдает звук, переходит вновь на цикл
- если неверно, переходит вновь на цикл.
CODE:if (kf1!="")//Число есть
{
if (formatsn(kf1)<=5)//[К1 сравнивает с числом:][сканирует К2]
{
beep (1000, 500);//-если верно, то выдавать звук,
if (Nom_chis==2)Nom_chis=0;//Если число второе - перейти на 1
goto a;// пропускать сканирование К2(в сканировании нет смысла), переходит вновь на цикл
}
Nom_chis++;//- если неверно, то переходить к сканированию К2
if (Nom_chis==2)Nom_chis=0;//Если число второе - перейти на 1
}
Можно так
CODE:if (kf1!="")//Число есть
{
if (Nom_chis==0)//первое
{
if (formatsn(kf1)<=5)
{
beep (1000, 500);
goto a;
}
Nom_chis=1;
goto a;
}
if (Nom_chis==1)//второе
{
if (formatsn(kf1)<=5)
{
beep (1000, 500);
Nom_chis=0;
goto a;
}
Nom_chis=0;
goto a;
}
} |
|
|
Kibor |
Отправлено: 13 Января, 2014 - 21:38:50
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
darow пишет: ну а когда начинается набор приличный всей таблицы менделеева то уже теряюсь
Это потому что код я просто пишу и даю ссылки на то что надо изучить для его понятия, а вы не смотрите.
darow пишет: что циклу может мешать, что когда он не видит картинку то просто прерывается и кибор вылетает на переднее окно
Весь код в студию |
|
|
darow |
Отправлено: 13 Января, 2014 - 21:43:17
|
Наблюдатель
Покинул форум
Сообщений всего: 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 x1=15;
int y1=1;
int Nom_chis=0;
int Sm_chis[2];
Sm_chis[0]=70;
Sm_chis[1]=110;
//Загрузка рисунков
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)//находим стартовую точку
{
//Ищет левый не белый пиксель в рамке на рисунке
poisk_pix(Sm_chis[Nom_chis]);
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 (skan()==1)goto lop;
if (kf1!="")//Число есть
{
if (Nom_chis==0)//первое
{
if (formatsn(kf1)>=2,5)
{
beep (250, 500);
goto a;
}
Nom_chis=1;
goto a;
}
if (Nom_chis==1)//второе
{
if (formatsn(kf1)>=2,5)
{
beep (500, 500);
Nom_chis=0;
goto a;
}
Nom_chis=0;
}
}
goto a;
//////////////////////////////////////////////////////////////
function skan()
{
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
return 0;
}
/////////////
function poisk_pix(int sm)
{
int xn=stvol_X+sm, 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;
}
}
}
Сайт:(для просмотра ссылки Вам необходимо авторизоваться) ]=2206115
Рисунки архив распаковать на c
Искать на такой странице
Ссылка меняется. надо искать по матчам |
|
|
Kibor |
Отправлено: 13 Января, 2014 - 22:54:38
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Так же у меня не сработал пока не поднял рамку поиска с
X[0]=stvol_X; Y[0]=stvol_Y+38;
на
X[0]=stvol_X; Y[0]=stvol_Y+32 ;
Вот код который у меня выводит по очереди 2 числа
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 x1=15;
int y1=1;
int Nom_chis=0;
int Sm_chis[2];
Sm_chis[0]=70;
Sm_chis[1]=110;
//Загрузка рисунков
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)//находим стартовую точку
{//1
//Ищет левый не белый пиксель в рамке на рисунке
poisk_pix(Sm_chis[Nom_chis]);
//mousemove(stvol_X, stvol_Y+32);
//sleep(1000);
X[0]=stvol_X; Y[0]=stvol_Y+32;
X[1]=X[0]+7; Y[1]=Y[0]+13;
int g=0;
kf1="";
lop:
//ищем по 1 цифре в рамке поиска. записываем координаты
if (skan()==1)goto lop;
if (kf1!="")//Число есть
{//5
messagebox (kf1);
if (Nom_chis==0)//первое
{
if (formatsn(kf1)>=2,5)
{
beep (250, 500);
goto a;
}
Nom_chis=1;
goto a;
}
if (Nom_chis==1)//второе
{
if (formatsn(kf1)>=2,5)
{
beep (500, 500);
Nom_chis=0;
goto a;
}
Nom_chis=0;
}
}//5
}//1
goto a;
//////////////////////////////////////////////////////////////
function skan()
{
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
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;
X[0]=X[0]+Ck1_x+razmerX[g];
X[1]=X[0]+7;
return 1;
}
return 0;
}
/////////////
function poisk_pix(int sm)
{
int xn=stvol_X+sm, 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;
}
}
} |
|
|
|