Author Topic: Подскажите по перебору координат  (Read 4378 times)

0 Members and 3 Guests are viewing this topic.

safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Подскажите по перебору координат
« on: February 01, 2017, 12:24:24 PM »
Прошу помощи!
Есть некоторое поле размером 1200х1200 необходимо что бы скрипт перебирал его с установленным шагом например 10, т.е. сначала по х от 0 до 1200 потом прибавлял 10 по у и снова перебирал х и так далее до 1200х1200. И выполнял действия по поиску куртинки. С поиском картинки все понятно, но как задать цикл перебора не могу разобраться.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Подскажите по перебору координат
« Reply #1 on: February 01, 2017, 12:42:15 PM »
Code: (clickermann) [Select]
FOR($y=0, $y < 1200, 10)
    FOR($x=0, $x < 1200, 10)
        LOGWRITE("X/Y  ", $x, " / ", $y     
    END_CYC
END_CYC

Но это ты так до пенсии будешь искать, с таким шагом. 14400 поисков это много.


safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #2 on: February 01, 2017, 12:45:13 PM »
Code: (clickermann) [Select]
FOR($y=0, $y < 1200, 10)
    FOR($x=0, $x < 1200, 10)
        LOGWRITE("X/Y  ", $x, " / ", $y     
    END_CYC
END_CYC

Но это ты так до пенсии будешь искать, с таким шагом. 14400 поисков это много.

Возможно шаг будет больше, а как еще ускорить, я не вижу другого варианта.

safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #3 on: February 01, 2017, 01:10:11 PM »
... а как еще ускорить, я не вижу другого варианта.
чтоб взвесить мешок риса, не нужно  отдельно взвешивать каждое рисовое зёрнышко.

Не спорю)) Задача на карте королевства найти замки врага, поиск возможен только по рисунку. Вот и хочу попробовать сканировать всю карту.

safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #4 on: February 01, 2017, 01:28:59 PM »
Картинка будет искаться на поле которое появляется по введеным координатам, а вот координаты будут задаваться циклом с шагом.
Впринципе первый ответ подходит, сейчас делаю тело скрипта и буду пробовать.

Badimboy

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Подскажите по перебору координат
« Reply #5 on: February 01, 2017, 01:43:58 PM »
Не спорю)) Задача на карте королевства найти замки врага, поиск возможен только по рисунку. Вот и хочу попробовать сканировать всю карту.
Так чем самый обычный поиск всей карты не подходит?
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF

safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #6 on: February 01, 2017, 01:49:48 PM »
Карта размером 1200х1200, на экран с 33%(чтобы хоть чтото можно было распознать) убирается от все карты часть размером 15х15.

Badimboy

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Подскажите по перебору координат
« Reply #7 on: February 01, 2017, 02:21:34 PM »
То есть 1200х1200 это не пикселей, а какой-то размер карты в игровых условных единицах?  Поиск нужно вести в видимой части карты которая составляет примерно 15х15 условных единиц, и после поиска эту видимую часть нужно менять на следующую. Так?

safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #8 on: February 01, 2017, 02:41:40 PM »
Совершенно верно. На каждом условном поле нужно найти картинку, и произвести некоторые действия для сообщения координат противника участникам альянса.

Badimboy

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Подскажите по перебору координат
« Reply #9 on: February 01, 2017, 03:14:45 PM »
Как всё сложно-то почему-бы не отсканировать координаты всех замков всего одной строкой, а потом при необходимости просто перевести координаты экранные в координаты клеток 15 на 15 если конечно это имеет хоть какой-то смысл? ???
На сколько я понимаю отсканировать одной строкой не получится, ибо видимая часть 15х15. Всю карту сканировать нельзя т.к масштаб её не позволяет различить замки. Нужно листать видимую часть. Осталось вытащить информацию из Safikа каким образом листать, клавиатурой или мышкой таскать или мышкой нажимать  :)

safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #10 on: February 01, 2017, 03:22:21 PM »
Мышкой не получается, вводятся координаты в специальных полях х и у отдельно.

Потестил немного карта вроде листается, осталось отладить действия с противником.

safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #11 on: March 07, 2017, 10:12:06 AM »
Дабы не создавать лишние темы спрошу тут.
Как реализовать клик по одной из найденной картинке в области?

в данный момент реализовано так:
Code: [Select]
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (150,233, 1030,755, "улучшить1.bmp", -1, 70)
   LCLICK($_return1-15, $_return2)
   WAITMS(2500)
   LCLICK($_return1-15, $_return2)
   WAITMS(2500)
END_IF

но делает клик по первой найденной картинке, а надо рандомно из всех найденных.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Подскажите по перебору координат
« Reply #12 on: March 07, 2017, 11:57:29 AM »
Использовать не IF_PICTURE_IN, а SCANPICTURE.
В шаблонах примеры.


safik

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Подскажите по перебору координат
« Reply #13 on: March 07, 2017, 01:42:22 PM »
Спасибо буду пробовать.