Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019
Репутация: 0
Kibor пишет:
Это к этому боту? Или там другая задача?
CODE:
string a="5";
string b="2";
int c=formatsn(a)+formatsn(b);
messagebox (c);
А как работать с базами по распознаванию текста через визуальный редактор?
Ну имеется ввиду, как там прописать действие чтоб после распознования цифр
считало их кол-во? (Добавление)
Zireael пишет:
Цитата:
Все эти вычисления
Это не актуально пока не будет кода, который корректно распознает цифры.
Цитата:
1.Запускается первая функция, она ищет красные цифры.
Затем она считает количество найденных цифр
Зачем считать, цифр найдётся 9 или 1. Если 9, то просто проверить какой не хватает.
CODE:
string s="0 1 2 3 4 5 6 8 9"; // допустим это распознанный текст
messagebox(f(s)); // покажет какого числа не хватает
Окей, а как нажать то её потом? Может я чего-то не понял...
Kibor
Отправлено: 20 Июля, 2019 - 11:06:19
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Это все в этом случае никак не применить. Тут нужен абсолютно другой подход. Попозже посморю по скринам с гугл диска.
Kibor
Отправлено: 20 Июля, 2019 - 13:20:09
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Пример как решить вопрос.
Все расчеты стоит засунуть в DLL для скорости работы.
CODE:
char Text[1000];
int k, n, n1;
int x1=53, y1=337, x2=1260, y2=643;
int Ch[4][1000];
int PosX[4][1000];
int PosY[4][1000];
int Y[4][1000];
int X[4][1000];
int S[4][1000];
int I[4][1000];
int R[4];
int T[4];
double cor=0.5;
int Color_Text1[1]={9999507};//серый белый
int Color_Text2[1]={7654007};//зеленый фиолетовый
int Color_Text3[1]={7916785};//желтый зеленый
int Color_Text4[1]={4013255};//красный желтый
Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019
Репутация: 0
Спасибо! (Добавление)
А ещё такой вопрос, может я просто не внимательно пересмотрел 2 раз.
Он же выводит сообщение в котором определён цвет, а он может выводить именно
цифру другого цвета?
Kibor
Отправлено: 20 Июля, 2019 - 19:33:57
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Может.
Когда вы рассчитаете позицию каждого символа исходя из полученной информации и с помощью к примеру findcolor определите в какой позиции (какой номер) находится цифра цветом который надо нажать.
Kinoman
Отправлено: 20 Июля, 2019 - 21:55:20
Прохожий
Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019
Репутация: 0
Прошу прощения за свою неграмотность, можно пример этого findcolor? Я только начал свой путь на программировании и пока не очень соображаю что и к чему...
Zireael
Отправлено: 20 Июля, 2019 - 22:18:48
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
Камеру в игре можно повернуть так чтобы ничего лишнего не попадало? Например, зелёные и фиолетовые цифры совпадают с цветом лодки, что мягко говоря мешает.
Kinoman
Отправлено: 21 Июля, 2019 - 02:24:15
Прохожий
Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019
Репутация: 0
Zireael пишет:
Камеру в игре можно повернуть так чтобы ничего лишнего не попадало? Например, зелёные и фиолетовые цифры совпадают с цветом лодки, что мягко говоря мешает.
Да, и лодка у меня уже другая совершенно. Камера крутится обычно от бездействия, это фиксится банальными рывками мышки ... ну если раз в 10 секунд двинул ничего шевелиться не будет.
Zireael
Отправлено: 21 Июля, 2019 - 09:26:08
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
Алгоритм стырил с форума другого кликера.
Например, для красных и жёлтых цифр:
1. Ищем все красные и жёлтые пиксели.
2. Сравниваем минимальную координату по X, если красный меньше значит желтая цифра 0.
3. Сравниваем максимальную координату по X, если красный меньше значит желтая цифра 9.
4. Если пункты 2 и 3 не подошли, т. е. жёлтая цифра не 0 и не 9, то считаем среднее расстояние между цифрами.
Из минимальной координаты по X жёлтого цвета вычитаем минимальную координату по X красного и делим на среднее расстояние между цифрами. Получим позицию жёлтой цифры.
CODE:
int num;
int coord[4]={574, 380, 1813, 875} // координаты поиска, левый верхний угол и правый нижний
pause(1000);
//////////////
num=find(3882184, 6081000, 40, 35); // красный, жёлтый, разбежность для красного, разбежность для жёлтого
messagebox(num);
// тоже самое для других цветов, подобрать нужную разбежность
function find(int color1, int color2, int r1, int r2)
{
int x1[9999], y1[9999], x2[9999], y2[9999];
int count1=findcolor(sizearray(x1), #x1[0],#y1[0], coord[0], coord[1], coord[2], coord[3], color1, r1,r1,r1,r1,r1,r1, -1);
int count2=findcolor(sizearray(x2), #x2[0],#y2[0], coord[0], coord[1], coord[2], coord[3], color2, r2,r2,r2,r2,r2,r2, -1);
//messagebox(format(count1)+" "+format(count2)); // сколько найдено цветов
if(count1 && count2) // если найдены
{
if(x1[0]>x2[0])return 0;
if(x1[count1-1]<x2[count2-1])return 9;
int mid=(x1[count1-1]-x1[0]) / 9.5; // среднее расстояние между цифрами
return (x2[count2-1] - x1[0]) / mid;
}
return -1; // вернёт -1 если цвета не найдены
}
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.