Author Topic: Нужен совет опытных  (Read 4707 times)

0 Members and 1 Guest are viewing this topic.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Нужен совет опытных
« on: November 09, 2013, 09:25:59 PM »
Есть поле.
На поле может быть до 100  разных картинок.
Расположены они  строго по рядам ( межрядное 40 пикселей)  и строкам( межстрочное тоже 40 ).
В каждом ряду  может  быть только по 20 картинок
Строк всего  может  быть только 5.
Итого:
 Строго на одном и том же месте в поле может быть от 1 до 100 картинок.
 Каждый раз это число новое.
 Нужно последовательно нажать все картинки на поле.
 Заранее угадать цвет невозможно.
 Он каждый раз новый.
 
 То есть, насколько я понимаю ,  нужно как-то компактно написать простой скрипт , последовательного  обхода  всех картинок.
Нажимать нужно строго в зависимости от их общего  числа. ( эта переменная  нам заранее известна)
Подскажите  ход решения задачи если не затруднит.
Бабочки полёт будит тихую поляну в солнечном свету...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нужен совет опытных
« Reply #1 on: November 09, 2013, 09:44:50 PM »
Если знаем число картинок:
Code: (clickermann) [Select]
$num = 64  // Число картинок
$Start_X = 100  // координаты первой картинки, центр
$Start_Y = 100
$i = 0
$j = 0

FOR($i, $i < 5)
   FOR($j, $j < 20)
      IF($num > 0)
         INC($num,-1)         
         LCLICK($Start_X+39*($j-1),$Start_Y+40*($i-1))
         WAITMS(300)
         // + обработка клика, если нужно
      ELSE
         $i = 100
         $j = 100
      END_IF     
   END_CYC
END_CYC


Если не знаем:
Code: (clickermann) [Select]
$Start_X = 100  // координаты первой картинки,  лев-верх рамки
$Start_Y = 100

$i = 0
$j = 0
FOR($i, $i < 5)
   FOR($j, $j < 20)
      GETSCREEN
      IF(PXL($Start_X+39*($j-1),$Start_Y+40*($i-1)) = 14659421)
         LCLICK($_return1+17, $_return2+17)
         WAITMS(500)
         // + обработка клика, если нужно
      Else
         $i = 100
         $j = 100
      END_IF
   END_CYC
END_CYC


ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Нужен совет опытных
« Reply #2 on: November 09, 2013, 09:51:21 PM »
Спасибо Vint )
 Сейчас пробовать буду.
 Отпишусь потом , как оно пошло  по реалу.
Твой скрипт  намного компактнее.
 Реально, запись кликанья  мышкой,  дала  мне 5600 строк скрипта ))) ( на 100 позиций)
Бабочки полёт будит тихую поляну в солнечном свету...

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Нужен совет опытных
« Reply #3 on: November 09, 2013, 10:32:49 PM »
Спасибо)
Все отлично работает!
В реале слегка оживил скрипт  случайными параметрами, чтобы  был похож  ручной ввод.
Как-то так
Code: (clickermann) [Select]
$Start_X = 469  // координаты первой картинки, центр
$Start_Y = 638
$i = 0
$j = 0
FOR($i, $i < 5)
   FOR($j, $j < 20)
      IF($num > 0)
         INC($num,-1)
         LCLICK($Start_X+39*($j-1) + RND(-12,12), $Start_Y+40*($i-1) + (RND(-12,12))                 
         WAITMS(RND( 450, 650))
      ELSE
         $i = 100
         $j = 100
      END_IF     
   END_CYC
END_CYC

Бабочки полёт будит тихую поляну в солнечном свету...

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Нужен совет опытных
« Reply #4 on: November 09, 2013, 11:01:50 PM »
Тут подумалось  о  реализме  процесса.
В реальных нажатиях  по картинкам, следующий ряд руки как-то сами начинают кликать , не с  права - налево, а слева направо.
Вероятно, для завершенности задачи, можно  написать и такой скрипт, но он намного сложнее )
Для меня, по крайней мере.
Бабочки полёт будит тихую поляну в солнечном свету...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нужен совет опытных
« Reply #5 on: November 10, 2013, 12:45:23 PM »
Тут подумалось  о  реализме  процесса.
В реальных нажатиях  по картинкам, следующий ряд руки как-то сами начинают кликать , не с  права - налево, а слева направо.
Вероятно, для завершенности задачи, можно  написать и такой скрипт, но он намного сложнее )
Для меня, по крайней мере.
Мне кажется ты сильно заморачиваешься. Никто это отслеживать не будет. Все люди индивидуальны. Однозначно сказать что работает бот по этому критерию нельзя.
Я даже считаю, что делать рандомность смещения кликов в большинстве случаев лишнее.
С регулярным интервалом стоит что-то делать, так как это первый признак.

Если чисто академический интерес, напишу как до компа доберусь. Это не намного сложнее. Но практического применения в этом не вижу.


Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Нужен совет опытных
« Reply #6 on: November 10, 2013, 07:32:03 PM »
именно так. анализировать кто куда кликнул очень непростая задача. тем более это не показатель того что играет бот. возьмите тех же корейцев или любого прогеймера у которого движения отточены до автоматизма...
в большинстве случаев бот (любой) палится на том что стоит на одной локации часов 6 и выполняет одни и теже действия. это видят другие игроки и пишут репорт.

и как мы видим компании предпочитают вкладывать деньги в проактивные защиты вроде фроста а не в анализаторы поведения. а в браузерной игре отслеживать клики вообще что то из области фантастики поэтому максимум что там делают - перерисовывают графику, добавляя всякие мигания, суют капчу. это останавливает ряд программ, но конечно не нас.

поэтому действительно если это не академический интерес то заморачиваться не стоит

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Нужен совет опытных
« Reply #7 on: November 10, 2013, 09:57:42 PM »
Всем спасибо )
Проверил .
Скрипт устойчиво работает.
Может есть смысл  перенести  это готовое решение в "алгоритмы"?
Задача такого рода может возникнуть у каждого новичка.
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нужен совет опытных
« Reply #8 on: November 10, 2013, 10:09:35 PM »
Всем спасибо )
Проверил .
Скрипт устойчиво работает.
Может есть смысл  перенести  это готовое решение в "алгоритмы"?
Задача такого рода может возникнуть у каждого новичка.

А смысл? Нуб темы не читает, он их создает  ;D

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Нужен совет опытных
« Reply #9 on: November 10, 2013, 10:50:48 PM »
Нуб темы не читает, он их создает  ;D
Раздел где лежат готовые решения, это первое куда идет нуб.
Шариться по всему сайту  уже трудно.
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нужен совет опытных
« Reply #10 on: November 11, 2013, 04:24:29 PM »
Я имею ввиду что нуб никуда не идет, он даже чтением справки не утруждается, просто создает тему чтобы ему дали ответ.
Вот пример