Author Topic: Помогите не образованному  (Read 2834 times)

0 Members and 2 Guests are viewing this topic.

SA93N

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Помогите не образованному
« on: August 19, 2014, 10:22:13 PM »
Доброго времени суток! Не разбираюсь в условиях, не могу написать код, помогите пожалуйста!
В общем суть такая:
ищем пиксель определенного цвета, если находим то кликаем на него мышкой, если нет то обновляем страницу, ну и опять проверяем, после того как его нашли опять ищем пиксель определенного цвета, если нет то ждем 5 секунд, и опять повторяем поиск, когда найдется опять ищем пиксель определенного цвета если нашли, то кликаем на нем, если нет кликаем в другом месте. Вот и все.

P.S. Я писал код, но он не работал. Я просто не  пойму где ставить END_IF, где ставить END_CYC и нужно ли его вообще ставить(

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Помогите не образованному
« Reply #1 on: August 20, 2014, 09:08:19 AM »
Не получается составить условие, потому, что непонятно что повторять.

Поиск пиксела
     Вложенный поиск
"и опять повторяем поиск" - ??? Какой из них? Последний или оба?
Если повторять только последний выглядеть будет так:
Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, цвет1)
   LCLICK($_return1,$_return2)
   WAITMS(100)
   $rep = 1
   WHILE($rep = 1)
      GETSCREEN
      IF_PIXEL_IN(0,0,$_xmax,$_ymax, цвет2)
         $rep = 0
         IF_PIXEL_IN(0,0,$_xmax,$_ymax, цвет3)
            LCLICK($_return1,$_return2)
            WAITMS(100)
         ELSE
            LCLICK(100,100) // в другом месте
         END_IF
      ELSE
         WAIT(5)
      END_IF
   END_CYC
ELSE
   KEYPRESS(#F5)
   WAITMS(1000)
END_IF

И не понятно что делать в конце. "Вот и всё" -  это остановить скрипт или начинать всё с начала?
Всегда ставь два стакана!
[spoiler]Программист ставит у кровати два стакана: полный и пустой.
Полный - если проснется и захочет пить.
А пустой... если проснётся, а пить не хочется.[/spoiler]


При описании лучше использовать вместо местоимений конкретные названия или нумерованые "ищем пиксел1, ищем пиксел7... повторяем с места поиска пиксела3...". Не понять что куда вложено должно быть.

END_IF и END_CYC конечно ставить. Ставить там где нужно, тебе видней.
Не пытайся в условиях и циклах писать код подряд, именно строку за строкой. Оперируй сразу блоками вставляя их в нужные места.

Поиск пиксела простой:
Code: (clickermann) [Select]
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 1)
   // нашли1
ELSE
   // не нашли1
END_IF

Теперь, если нам нужно если нашли что-то сделать, например, кликнуть в определённое место то так и вставляем
Code: (clickermann) [Select]
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 1)
   LCLICK(100,100)
ELSE
   // не нашли1
END_IF

А если не нашли - искать пиксел2. Вот и вкладываем поиск пиксела2 целиком в нужное место.
Code: (clickermann) [Select]
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 1)
   LCLICK(100,100)
ELSE
   IF_PIXEL_IN(0,0,$_xmax,$_ymax, 2)
      // нашли 2
   ELSE
      // не нашли 2
   END_IF
END_IF

Ну и так дальше.
« Last Edit: August 20, 2014, 09:14:53 AM by Vint »


SA93N

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: Помогите не образованному
« Reply #2 on: August 20, 2014, 12:49:37 PM »
Спасибо огромное,  Вы все правильно поняли, согласен описание задания у меня очень плохое, в следующий раз, если вдруг что, буду писать точнее.
Немного не понял переменные rep если 1 то условие выполнилось, если 0 то не выполнилось так?. И зачем нужен WHILE, если в первом условии он есть, а во втором нет.  И еще не совсем понял когда ставить END_CYC, что она делает?

Не совсем работает алгоритм, сначала вроде заработал, а потом стал постоянно обновлять страницу и все. В общем я составил немного другой алгоритм, написал, но он тоже не заработал.
Нужно так:


P.S. Вроде так, хотя мог перепутать эти ромбики, квадратики.
« Last Edit: August 20, 2014, 02:21:24 PM by SA93N »

SA93N

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: Помогите не образованному
« Reply #3 on: August 21, 2014, 08:31:46 PM »
Написал заново, все равно не работает, после нахождения первого пикселя открывается новая страница в браузере и дальше алгоритм не идет, а начинается заново, но так как это новая страница, то на ней уже нет пикселя 1, поэтому выполняется уловие ELSE, т.е обновление страницы (F5)