Sleemer |
Отправлено: 29 Февраля, 2020 - 17:16:50
|
Прохожий
Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2020
Репутация: 0
|
Zireael пишет: Цитата: как реализуется
Через readtext.
Сначала распознать строку, которую нужно ввести, в данном случае 8763.
Потом распознать цифры, на которые надо нажать. После распознавания будут известны координаты всех символов, symbolxpos и symbolypos.
Останется только в цикле найти нужный символ и кликнуть по нему.
Для начала обучите базе для readtext, чтобы символы корректно распознавались. Графика -> Настройка распознавания текста.
Мой алгоритм который я умею...будет похож на то что проверяем 1 цифру если,если,если,если =3 должны кликнуть туда...но вот примера найти в окне цифру 2 и кликнуть в это место...на ыоруме не вижу...близкий пример реализации нажатие кнопок, который показывал кибор в видео...распознать пол беды, уже делал в другой игре бота....работаю через визуальное...буду рад более конкретному примеру как это должно выглядеть(Отредактировано автором: 29 Февраля, 2020 - 17:17:58) |
|
|
Zireael |
Отправлено: 29 Февраля, 2020 - 17:54:20
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: но вот примера найти в окне цифру 2 и кликнуть в это место...на ыоруме не вижу
CODE:int coord[4] = {56, 278, 399, 381} // экранные координаты нижних цифр
string path="D:\Kibor2\basetext.sib"; // путь к базе символов
string Text;
char c[99];
// загрузка базы символов
if(loadsymbolbase (path) == -1){messagebox("База символов не найдена"); goto end;}
// распознавание текста
if(readtext (NUM, #Text, 8, -1, -1, -1, -1, -1, -1, 0, -1, coord[0], coord[1], coord[2], coord[3], -1))
{
messagebox (Text); // распознанный тест
strcpy(#c[0], Text); // скопировать строку в массив
for(int i=0; i<size(Text); i++) // поиск в цикле нужной цифры
{
if(symbolcorrect(i)<0.5)continue; // если корректность символа меньше 0.5, то его не проверяем
if(c[i] == "2") // если цифра 2
{
mousemove(coord[0]+symbolxpos(i)+symbolwidth(i)/2, coord[1]+symbolypos(i)-symbolheight(i)/2); // навести на неё курсор
break; // выход из цикла
}
}
}
end:; |
|
|
Sleemer |
Отправлено: 29 Февраля, 2020 - 20:10:40
|
Прохожий
Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2020
Репутация: 0
|
Zireael пишет: Цитата: но вот примера найти в окне цифру 2 и кликнуть в это место...на ыоруме не вижу
CODE:int coord[4] = {56, 278, 399, 381} // экранные координаты нижних цифр
string path="D:\Kibor2\basetext.sib"; // путь к базе символов
string Text;
char c[99];
// загрузка базы символов
if(loadsymbolbase (path) == -1){messagebox("База символов не найдена"); goto end;}
// распознавание текста
if(readtext (NUM, #Text, 8, -1, -1, -1, -1, -1, -1, 0, -1, coord[0], coord[1], coord[2], coord[3], -1))
{
messagebox (Text); // распознанный тест
strcpy(#c[0], Text); // скопировать строку в массив
for(int i=0; i<size(Text); i++) // поиск в цикле нужной цифры
{
if(symbolcorrect(i)<0.5)continue; // если корректность символа меньше 0.5, то его не проверяем
if(c[i] == "2") // если цифра 2
{
mousemove(coord[0]+symbolxpos(i)+symbolwidth(i)/2, coord[1]+symbolypos(i)-symbolheight(i)/2); // навести на неё курсор
break; // выход из цикла
}
}
}
end:;
Спасибо, есть с чем работать, благодарен, надеюсь дальше смогу справиться сам.
Ловите + к репутации |
|
|
|