Author Topic: Помогите плз с алгоритмом и кодом )))  (Read 2539 times)

0 Members and 1 Guest are viewing this topic.

lDC512L

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Прошу сильно не пинать, но чего то не могу сообразить как сделать
имеем: в определенном участке экрана мы можем увидеть один из 3-ти цветов, после чего если  цвет пикселя совпадает то жмакаем на кнопочку в координате (но не более чем $c раз). Если мы уже нажмакали $c раз то ждем пока цвет пикселя НЕ будет совпадать с одним из трех цветов, после чего сбрасываем счетчик и все повторяем сначала. Пока додумался только до этого
Code: [Select]
$c=2   
$b=32     
LOGSHOW (1, 0,522)
LOGCLEAR
$n=int(3600/($b * 10))
LOGWRITE ($n)
$a=0
$d=11
while (($a<$c)&($d>10))
Getscreen
   IF_PIXEL_IN(826,490,842,506,65280,39168,39219)
      LCLICK(373,838 )
      inc($a,1)
      LOGWRITE ($a)
      $d=100
      WAIT($n)
   else
      $a=1000
      $d=1
      WAITMS(500)
   end_if
end_cyc
« Last Edit: July 23, 2018, 05:46:05 PM by lDC512L »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите плз с алгоритмом и кодом )))
« Reply #1 on: July 24, 2018, 09:56:05 AM »
Code: (clickermann) [Select]
$c=2
$b=32

LOGSHOW (1, 0,522)
LOGCLEAR
$n=int(3600/($b * 10))
LOGWRITE ("Задержка: ",$n, " сек")

WHILE(1)
   GETSCREEN
   IF_PIXEL_IN(826,490,842,506,65280,39168,39219)
      IF($count < $c)
         LCLICK(373,838)
         WAIT($n)
         INC($count,1)
         LOGWRITE ("Клик: ",$count)
      ELSE
         WAITMS(500)
      END_IF
   ELSE
      $count = 0
      LOGWRITE ("Сброс")
      WAITMS(500)
   END_IF
END_CYC
« Last Edit: July 24, 2018, 10:00:30 AM by Oraven »

lDC512L

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите плз с алгоритмом и кодом )))
« Reply #2 on: July 24, 2018, 05:45:18 PM »
спасибо большое, все супер, работает как надо )

lDC512L

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите плз с алгоритмом и кодом )))
« Reply #3 on: July 25, 2018, 05:09:33 PM »
Oraven, еще не мог бы помочь с тем чтобы поставить задержку в секундах перед запуском, смысл такой: если мы видим один из трех цветов то включаем задержку (300 секунд), после чего снова делаем сканирование и если видим один из трех цветов то уже выполняем эту программу? и еще вопрос что означает WHILE(1)?
Code: (clickermann) [Select]
$c=2
$b=32

LOGSHOW (1, 0,522)
LOGCLEAR
$n=int(3600/($b * 10))
LOGWRITE ("Задержка: ",$n, " сек")

WHILE(1)
   GETSCREEN
   IF_PIXEL_IN(826,490,842,506,65280,39168,39219)
      IF($count < $c)
         LCLICK(373,838)
         WAIT($n)
         INC($count,1)
         LOGWRITE ("Клик: ",$count)
      ELSE
         WAITMS(500)
      END_IF
   ELSE
      $count = 0
      LOGWRITE ("Сброс")
      WAITMS(500)
   END_IF
END_CYC

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите плз с алгоритмом и кодом )))
« Reply #4 on: July 26, 2018, 10:43:02 AM »
WHILE(1) означает бесконечный цикл.

Code: (clickermann) [Select]
IF(0) // Условие всегда не верно

END_IF

IF(1) // Условие всегда верно

END_IF

Code: (clickermann) [Select]
$c=2
$b=32

LOGSHOW (1, 0,522)
LOGCLEAR
$n=int(3600/($b * 10))
LOGWRITE ("Задержка: ",$n, " сек")

WHILE(1)
   GETSCREEN
   IF_PIXEL_IN(826,490,842,506,65280,39168,39219)
      IF($count < $c)
         IF($w = 0)
            LOGWRITE ("Задержка на 300 сек")
            WAIT(300)
            $w = 1
         ELSE
            LCLICK(373,838)
            WAIT($n)
            INC($count,1)
            $w = 0
            LOGWRITE ("Клик: ",$count)
         END_IF
      ELSE
         WAITMS(500)
      END_IF
   ELSE
      $count = 0
      LOGWRITE ("Сброс")
      WAITMS(500)
   END_IF
END_CYC
« Last Edit: July 26, 2018, 10:45:39 AM by Oraven »

lDC512L

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите плз с алгоритмом и кодом )))
« Reply #5 on: July 26, 2018, 03:01:05 PM »
Спасибо большое )