Суть алгоритма: в заданной области может появиться одно из 4х изображений. Изображения одинаковые по размеру, но с разным фоном. Функция должна проверить область на наличие одного из 4х изображений и если там нет ни одного из них, то нужно кликнуть на эту область, а если какое то из 4х есть, то пропустить эту область и перейти к поиску в другой.
Зоны поиска у меня находятся в 4х массивах. 2 массива координат на левую верхнюю точку, 2 массива координат на нижнюю правую. Всего зон поиска 15 штук. Поэтому в массивах у меня по 15 значений. Все 4 массива я объявил в стартовом блоке, как массивы типа int. Далее я создал блок когда, где прописал их:
CODE:
flagArrayTopX[0] = 813; flagArrayTopY[0] = 67;
flagArrayTopX[1] = 652; flagArrayTopY[1] = 257;
flagArrayTopX[2] = 976; flagArrayTopY[2] = 257;
flagArrayTopX[3] = 490; flagArrayTopY[3] = 439;
flagArrayTopX[4] = 814; flagArrayTopY[4] = 439;
flagArrayTopX[5] = 1136; flagArrayTopY[5] = 439;
flagArrayTopX[6] = 329; flagArrayTopY[6] = 623;
flagArrayTopX[7] = 651; flagArrayTopY[7] = 623;
flagArrayTopX[8] = 976; flagArrayTopY[8] = 623;
flagArrayTopX[9] = 1299; flagArrayTopY[9] = 623;
flagArrayTopX[10] = 167; flagArrayTopY[10] = 810;
flagArrayTopX[11] = 490; flagArrayTopY[11] = 810;
flagArrayTopX[12] = 814; flagArrayTopY[12] = 810;
flagArrayTopX[13] = 1137; flagArrayTopY[13] = 810;
flagArrayTopX[14] = 1461; flagArrayTopY[14] = 810;
flagArrayBottomX[0] = 1103; flagArrayBottomY[0] = 244;
flagArrayBottomX[1] = 944; flagArrayBottomY[1] = 433;
flagArrayBottomX[2] = 1265; flagArrayBottomY[2] = 433;
flagArrayBottomX[3] = 782; flagArrayBottomY[3] = 618;
flagArrayBottomX[4] = 1106 ; flagArrayBottomY[4] = 618;
flagArrayBottomX[5] = 1428; flagArrayBottomY[5] = 618;
flagArrayBottomX[6] = 620; flagArrayBottomY[6] = 805;
flagArrayBottomX[7] = 944; flagArrayBottomY[7] = 805;
flagArrayBottomX[8] = 1268; flagArrayBottomY[8] = 805;
flagArrayBottomX[9] = 1590; flagArrayBottomY[9] = 805;
flagArrayBottomX[10] = 456; flagArrayBottomY[10] = 990;
flagArrayBottomX[11] = 780; flagArrayBottomY[11] = 990;
flagArrayBottomX[12] = 1106; flagArrayBottomY[12] = 990;
flagArrayBottomX[13] = 1430; flagArrayBottomY[13] = 990;
flagArrayBottomX[14] = 1753; flagArrayBottomY[14] = 990;
flagArrayTopX[0] = 813; flagArrayTopY[0] = 67;
flagArrayTopX[1] = 652; flagArrayTopY[1] = 257;
flagArrayTopX[2] = 976; flagArrayTopY[2] = 257;
flagArrayTopX[3] = 490; flagArrayTopY[3] = 439;
flagArrayTopX[4] = 814; flagArrayTopY[4] = 439;
flagArrayTopX[5] = 1136; flagArrayTopY[5] = 439;
flagArrayTopX[6] = 329; flagArrayTopY[6] = 623;
flagArrayTopX[7] = 651; flagArrayTopY[7] = 623;
flagArrayTopX[8] = 976; flagArrayTopY[8] = 623;
flagArrayTopX[9] = 1299; flagArrayTopY[9] = 623;
flagArrayTopX[10] = 167; flagArrayTopY[10] = 810;
flagArrayTopX[11] = 490; flagArrayTopY[11] = 810;
flagArrayTopX[12] = 814; flagArrayTopY[12] = 810;
flagArrayTopX[13] = 1137; flagArrayTopY[13] = 810;
flagArrayTopX[14] = 1461; flagArrayTopY[14] = 810;
flagArrayBottomX[0] = 1103; flagArrayBottomY[0] = 244;
flagArrayBottomX[1] = 944; flagArrayBottomY[1] = 433;
flagArrayBottomX[2] = 1265; flagArrayBottomY[2] = 433;
flagArrayBottomX[3] = 782; flagArrayBottomY[3] = 618;
flagArrayBottomX[4] = 1106 ; flagArrayBottomY[4] = 618;
flagArrayBottomX[5] = 1428; flagArrayBottomY[5] = 618;
flagArrayBottomX[6] = 620; flagArrayBottomY[6] = 805;
flagArrayBottomX[7] = 944; flagArrayBottomY[7] = 805;
flagArrayBottomX[8] = 1268; flagArrayBottomY[8] = 805;
flagArrayBottomX[9] = 1590; flagArrayBottomY[9] = 805;
flagArrayBottomX[10] = 456; flagArrayBottomY[10] = 990;
flagArrayBottomX[11] = 780; flagArrayBottomY[11] = 990;
flagArrayBottomX[12] = 1106; flagArrayBottomY[12] = 990;
flagArrayBottomX[13] = 1430; flagArrayBottomY[13] = 990;
flagArrayBottomX[14] = 1753; flagArrayBottomY[14] = 990;
Точность координат проверил и переписал дважды.
Блок схема функции:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Мессаджбоксы вывел для себя, чтобы найти убедиться в проблеме, вот как должно быть в готовом боте:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Что тут происходит: После начала функции, курсор мыши уводится в сторону, где точно не будет искомой картинки, чтобы не помешать поиску. Потом создаю индекс с нулевым значением, для того чтобы использовать его в поиске изображений. Далее в первой зоне поиска я ищу картинку, если ее там нет, ищу следующую и так до 4й картинки, если ни одна из 4х картинок не была найдена, нужно нажать на эту область. (координаты центров областей также в массивах), а если хоть одна из 4х картинок была найдена то, то нужно прекратить поиск и начать поиск в следующей области (делаю через i++).
Зоны поиска картинки для функции поиска обозначаю так:
CODE:
flagArrayTopX[i] flagArrayTopY[i] flagArrayBottomX[i] flagArrayBottomY[i]
На первой итерации i = 0, что соответствует первой зоне поиска, если я ничего не путаю)
Устанавливаю такие свойства функции:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Суть проблемы: в том, что бот тупо игнорирует наличие картинки в области поиска. Касается всех 4х картинок, которые там могут появиться. Бот действует так, будто их нет и нажимает на текущую область, чего делать не нужно. В варианте с мессаджбоксами, где при нахождении картинки должно быть появиться соответствующее окно, сообщений не было. Думал, что проблема с координатами точек для области поиска и перепроверил их, немного увеличив зону поиска. Не помогло. При записи координат приложение, в котором будет работать бот, растягиваю на весь экран, так что смещений быть не может. Может быть проблема в логике. Да и клик по нужной области происходит верно на каждой итерации, значит дело точно не в координатах. Мне кажется, что блок схему мог составить неправильно, но как сделать "так, как нужно" не знаю.
Сделал сегодня тестовый вариант. Область поиска прописал конкретно в цифрах. Так же все 4 картинки в ней искались и должны были вывестись сообщения о нахождении какой либо из них. Нужная картинка нашлась и вывелось соответствующее сообщение.... После этого понимаю, что проблема на поверхности, но не могу понять в чем именно.
Надеюсь, ничего не забыл. Код бота и функции в отдельности не стал прикладывать, но если нужно кину. Помогите разобраться, плиз)