Author Topic: Вопрос по правильности построения кода  (Read 2128 times)

0 Members and 1 Guest are viewing this topic.

Pain

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Задача такова:Изначально код проходит полностью в строгой последовательности,затем первая часть отключается и работает вторая,затем как вторая проработает сотню раз,все начинается с первой части кода и потом снова работает только вторая,и так до бесконечности.
Пример моего кода:
[spoiler]   uf1:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "uf1.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(uf1)
END_IF
   uf2:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "uf2.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(uf2)
END_IF
   uf3:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "uf3.bmp", -1, 100)
   MOVE($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(uf3)
END_IF
   uf4:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "uf4.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(uf4)
END_IF
   uf5:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "uf5.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(uf5)
END_IF
   uf6:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "uf6.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAIT(3600)
   ELSE
   GOTO(uf6)
END_IF

 //////////////2 Часть

op1:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "11.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(op1)
END_IF
op2:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "2.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(op2)
END_IF
op3:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "33.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(op3)
END_IF
op4:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "skil1.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
KEYPRESS(#S)
   ELSE
   GOTO(op4)
END_IF
op5:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "4.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(op5)
END_IF
op6:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "55.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(50)
   ELSE
   GOTO(op6)
END_IF
op7:
GETSCREEN
IF_PICTURE_IN (214,143, 1227,708, "6.bmp", -1, 100)
   LCLICK($_return1, $_return2)
LCLICK(737,77)  // 15454130
   WAITMS(50)
   ELSE
   GOTO(op7)
END_IF[/spoiler]
PS:Буду очень благодарен за помощь и подачу моего кода в правильном виде исходя из моих задач ;)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вопрос по правильности построения кода
« Reply #1 on: November 16, 2015, 06:33:36 PM »
Code: (clickermann) [Select]
// первая часть здесь
FOR($i=0, $i < 101)
// вторая часть кода здесь
END_CYC

И лучше бы поубирать GOTO и вот это всё одинаковое в циклы


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вопрос по правильности построения кода
« Reply #2 on: November 16, 2015, 06:34:25 PM »
Code: (clickermann) [Select]
SUB(Part1, $image, $w)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (214,143, 1227,708, $image, -1, 100)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS($w)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
END_SUB

SUB(Part2, $image, $var)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (214,143, 1227,708, $image, -1, 100)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(50)
         IF($var = 1)
            KEYPRESS(#S)
            WAITMS(50)
         END_IF
         IF($var = 2)
            LCLICK(737,77)  // 15454130
            WAITMS(50)
         END_IF
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
END_SUB

/////// 1 Часть ////////
Part1("uf1.bmp",50)
Part1("uf2.bmp",50)
Part1("uf3.bmp",50)
Part1("uf4.bmp",50)
Part1("uf5.bmp",50)
Part1("uf6.bmp",3600)

/////// 2 Часть ////////
FOR($a=0,$a<100)
   Part2("11.bmp",0)
   Part2("2.bmp",0)
   Part2("33.bmp",0)
   Part2("skil1.bmp",1)
   Part2("4.bmp",0)
   Part2("55.bmp",0)
   Part2("6.bmp",2)
END_CYC
« Last Edit: November 16, 2015, 06:37:24 PM by Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вопрос по правильности построения кода
« Reply #3 on: November 16, 2015, 06:43:27 PM »
Ну как-то так:
Code: (clickermann) [Select]
FOR($i=1, $i < 7)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (214,143, 1227,708, STRCONCAT("uf", $i, ".bmp"))
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(50)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
END_CYC
WAIT(3600)

//////////////2 Часть
STRSEPARATE("11:2:33:skil1:4:55:6", ":", $name)
FOR($repeat=0, $repeat < 101)
   FOR($i=0, $i < ARRSIZE($name))
      $check = 0
      WHILE($check = 0)
         GETSCREEN
         IF_PICTURE_IN (214,143, 1227,708, STRCONCAT($name[$i] ".bmp"))
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(50)
            IF($i = 3)
               KEYPRESS(#S)
               WAITMS(50)
            END_IF
            IF($i = 6)
               LCLICK(737,77)  // 15454130
               WAITMS(50)
            END_IF
         ELSE
            WAITMS(50)
         END_IF
      END_CYC
   END_CYC
END_CYC


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вопрос по правильности построения кода
« Reply #4 on: November 16, 2015, 08:10:20 PM »
Во как надо скрипты писать  8)  ;D

Pain

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Вопрос по правильности построения кода
« Reply #5 on: November 17, 2015, 09:29:15 AM »
Я сам новичок,только начал писать скрипты,очень полезно было узнать как же должно все выглядеть в профессиональном виде.Спасибо всем за помощь :)

Pain

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Вопрос по правильности построения кода
« Reply #6 on: November 17, 2015, 02:00:35 PM »
Во как надо скрипты писать  8)  ;D
Твой скрипт работает как часики.Второй же жмакает один и тот-же элемент и дальше дело не идет)