Author Topic: оптимизация кода  (Read 2777 times)

0 Members and 2 Guests are viewing this topic.

aast2012

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
оптимизация кода
« on: December 27, 2018, 04:04:24 AM »
Помогите упростить код.... все работает на УРА... просто сейчас будут писать что я не правильно делаю, что ГОТО выхожу с цикла... и т.д.. вот прошу если есть время и желание оптимизируйте или напишите правильно этот код... повторюсь КОД работает как надо

Code: (clickermann) [Select]
#logfile
start:

$startSume = 1
$stepIncriment = 3     // умножение

$wait=10               // попыток


if($wait > 0)
   lclick(1789,210)
   waitms(200)
   
   FOR($a=0,$a<10) // первая инициализация для старта
      KEYPRESS(#BACKSPACE)
      WAITMS(20)
   END_CYC
   wait(1)
   print("попыток"," ", $wait)
   KEYSTRING($startSume)
   waitms(200)
   
 start1: 
   $var = 0
   $check = 0
   $vverh = 0
   $vniz = 0
   $checkk = 0
   $proigr = 0
   //===========================================================================
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(1645,856,1645,954,2176491)
         
         
         $var = $_return2
         // move($_return1, $_return2)
         
      END_IF
     
      if ($var>935)
         //повышение
         $check = 1
         $vverh = 1
         $vniz = 0
         //move($_return1, $_return2)
         
      END_IF
     
     
      if ($var<870)
         //понижение
         $check = 1
         //move($_return1, $_return2)
         $vverh = 0
         $vniz = 1
      END_IF
   END_CYC
   
   //=====================================================================
   
   if ($vverh = 1)
     
      print("ставка","-", $startSume)
      //----------------------
      KEYDOWN (#Q) // нажатие клавиши "Q"
      WAITMS (50)
      KEYUP (#Q)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
   
   if ($vniz = 1)
     
      print("ставка","-", $startSume)
      KEYDOWN (#R)  // нажатие клавиши "R"
      WAITMS (50)
      KEYUP (#R)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
   
   //=============================================================================
   
   WHILE($checkk = 0)
      //Print ("отслеживаем")
      //Print ($checkk, " ", "окончание")
      // отслеживание окончания сделки выигрыша
      GETSCREEN
      IF_PIXEL_IN(100,932,390,986,4709631)  // выигрыш
         //скриншот
         GETSCREEN
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
         //------------------------------------
         Print ("выигрыш")
         print("==================")
         wait(1)
         goto(start)
      end_if
      //--------------------------------
      // отслеживание окончания сделки проигрыша
      GETSCREEN
      IF_PIXEL_IN(343,932,390,958,16777215)  // проигрыш
         //скриншот
         GETSCREEN
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-",$_time_m,"-", $_time_s,".bmp"),0)
         //------------------------------------
         Print ("проигрыш")
         print("==================")
         INC($wait,-1)
         print("попыток", " ", $wait)
         if($wait > 0)
            $startSume = $startSume*$stepIncriment
            //print("сумма", " ", $startSume)
            $proigr = 1
            $checkk = 1
            lclick(1789,210)
           
            waitms(200)
           
            FOR($a=0,$a<10) // первая инициализация для старта
               KEYPRESS(#BACKSPACE)
               WAITMS(20)
            END_CYC
            wait(1)
           
            KEYSTRING($startSume)
           
            wait(1)
            WHILE($proigr = 1)
             //print("поиск 2 зоны")
               GETSCREEN
               IF_PIXEL_IN(1645,877,1645,934,2176491)
                  $proigr = 2
               END_IF
            END_CYC
      END_IF
 
            if ($vverh = 1)
               
               print("ставка","-", $startSume)
               //----------------------
               KEYDOWN (#Q) // нажатие клавиши "Q"
               WAITMS (50)
               KEYUP (#Q)
               WAIT (2)
               
               //скриншот
               GETSCREEN
               SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
               //------------------------------------
               WAIT (15)
            END_IF
           
            if ($vniz = 1)
               
               print("ставка","-", $startSume)
               KEYDOWN (#R)  // нажатие клавиши "R"
               WAITMS (50)
               KEYUP (#R)
               WAIT (2)
               
               //скриншот
               GETSCREEN
               SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
               //------------------------------------
               WAIT (15)
            END_IF
           
            //=============================================================================
           
            WHILE($proigr = 2)
               
               //Print ("отслеживаем")
               // отслеживание окончания сделки выигрыша
               GETSCREEN
               IF_PIXEL_IN(100,932,390,986,4709631)  // выигрыш
                  //скриншот
                  GETSCREEN
                  SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
                  //------------------------------------
                  Print ("выигрыш")
                  print("==================")
                  wait(1)
                  goto(start)
               end_if
               //--------------------------------
               // отслеживание окончания сделки проигрыша
               GETSCREEN
               IF_PIXEL_IN(343,932,390,958,16777215)  // проигрыш
                  //скриншот
                  GETSCREEN
                  SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-",$_time_m,"-", $_time_s,".bmp"),0)
                  //------------------------------------
                  Print ("проигрыш")
                  print("==================")
                  INC($wait,-1)
                  print("попыток", " ", $wait)
                  if($wait > 0)
                     $startSume = $startSume*$stepIncriment
                     //print("сумма", " ", $startSume)
                     $proigr = 1
                     $checkk = 0
                     lclick(1789,210)
                     
                     waitms(200)
                     
                     FOR($a=0,$a<10) // первая инициализация для старта
                        KEYPRESS(#BACKSPACE)
                        WAITMS(20)
                     END_CYC
                     wait(1)
                     
                     KEYSTRING($startSume)
                     
                     wait(1)
                     Goto(start1)
                     
                  END_IF
                 
                 
                END_IF 
               END_CYC
            END_IF
           
           
           
   END_CYC         
           
         
     
   END_IF
« Last Edit: December 27, 2018, 09:28:02 AM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: оптимизация кода
« Reply #1 on: December 27, 2018, 09:27:46 AM »
Code: (clickermann) [Select]
#logfile


SUB(vverh) // подпрограмма
   IF ($vverh = 1)
     
      print("ставка","-", $startSume)
      //----------------------
      KEYDOWN (#Q) // нажатие клавиши "Q"
      WAITMS (50)
      KEYUP (#Q)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
END_SUB

SUB(vniz) // подпрограмма
   IF ($vniz = 1)
     
      print("ставка","-", $startSume)
      KEYDOWN (#R)  // нажатие клавиши "R"
      WAITMS (50)
      KEYUP (#R)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
END_SUB

//=============================================================================================


$startSume = 1
$stepIncriment = 3     // умножение
$wait=10               // попыток

lclick(1789,210)
waitms(200)

FOR($a=0,$a<10) // первая инициализация для старта
   KEYPRESS(#BACKSPACE)
   WAITMS(20)
END_CYC
wait(1)

print("попыток"," ", $wait)
KEYSTRING($startSume)
waitms(200)

start:

//===========================================================================

$check = 0
WHILE($check = 0)
   GETSCREEN(1645,856,1645,954)
   IF_PIXEL_IN(1645,856,1645,954,2176491)
      IF($_return2>935)
         //повышение
         $check = 1
         $vverh = 1
         $vniz = 0
         vverh()
      ELSE
         IF($_return2<870)
            //понижение
            $check = 1
            $vverh = 0
            $vniz = 1
            vniz()
         ELSE
            WAITMS (20)
         END_IF
      END_IF
   ELSE
      WAITMS (20)
   END_IF
END_CYC

//=============================================================================

$proigr = 0
WHILE($proigr < 2)
   
   //Print ("отслеживаем")
   //Print ($check, " ", "окончание")
   // отслеживание окончания сделки выигрыша
   GETSCREEN
   IF_PIXEL_IN(100,932,390,986,4709631)  // выигрыш
      //скриншот
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      Print ("выигрыш")
      print("==================")
      wait(1)
      $proigr = 3
   ELSE
      //--------------------------------
      // отслеживание окончания сделки проигрыша
      IF_PIXEL_IN(343,932,390,958,16777215)  // проигрыш
         //скриншот
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-",$_time_m,"-", $_time_s,".bmp"),0)
         //------------------------------------
         Print ("проигрыш")
         print("==================")
         INC($wait,-1)
         print("попыток", " ", $wait)
         
         IF($wait > 0)
            $startSume = $startSume*$stepIncriment
            //print("сумма", " ", $startSume)
            INC($proigr,1)
           
            lclick(1789,210)
            waitms(200)
           
            FOR($a=0,$a<10) // первая инициализация для старта
               KEYPRESS(#BACKSPACE)
               WAITMS(20)
            END_CYC
            wait(1)
           
            KEYSTRING($startSume)
            wait(1)
           
            IF($proigr = 1)
               $check = 0
               WHILE($check = 0)
                  //print("поиск 2 зоны")
                  GETSCREEN(1645,877,1645,934)
                  IF_PIXEL_IN(1645,877,1645,934,2176491)
                     $check = 1
                  ELSE
                     WAITMS(20)
                  END_IF
               END_CYC
            END_IF
         ELSE
            HALT // Стоп если больше 10 проигрышей
         END_IF
         
         IF($proigr = 1)
            vverh()
            vniz()
         END_IF
         
      END_IF
   END_IF
   
END_CYC

IF($proigr < 3)
   Goto(start)
END_IF

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: оптимизация кода
« Reply #2 on: December 27, 2018, 11:48:17 AM »
Мне непонятен один момент.
Находимся мы в цикле WHILE($checkk = 0). Произошел проигрыш и заканчиваются у нас попытки $wait = 0
INC($wait,-1)

Всё. Мы зациклились в WHILE($checkk = 0) т.к выход из попыток $checkk = 1 находится под условием if($wait > 0).
Остаётся единственный выход - при выигрыше. Так и задумано? Т.е. мы ставим и ставим и ставим без учёта 10 попыток,  всё сливая пока не будет выигрыш?


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: оптимизация кода
« Reply #3 on: December 27, 2018, 02:16:33 PM »
Code: (clickermann) [Select]
#logfile

$startSume = 1
$stepIncriment = 3     // умножение
$wt = 10               // попыток

//==============================================================================
SUB(first_ini)
    LCLICK(1789,210)
    WAITMS(200)
    FOR($a=0,$a<10) // первая инициализация для старта
        KEYPRESS(#BACKSPACE)
        WAITMS(20)
    END_CYC
    WAIT(1)
    KEYSTRING($startSume)
    WAIT(1)
END_SUB

SUB(stavka, $st_napr)
    PRINT("ставка","-", $startSume)
    //----------------------
    SWITCH($st_napr)
        CASE(1)  // направление вверх, жмём Q
            KEYDOWN(#Q)
            WAITMS(50)
            KEYUP(#Q)
        CASE(2)  // направление вниз, жмём R
            KEYDOWN(#R)
            WAITMS(50)
            KEYUP(#R)
    END_SWITCH
    WAIT(2)
    //скриншот
    GETSCREEN
    SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
    //------------------------------------
    WAIT (15)
END_SUB

//==============================================================================

WHILE($wt > 0)
    PRINT("попыток"," ", $wt)
    first_ini()
   
    //==========================================================================
    $napr = 0  // 1-вверх, 2-вних
    WHILE($napr = 0)
        GETSCREEN(1645,856,1645,954)
        IF_PIXEL_IN(1645,856,1645,954,2176491)
            // move($_return1, $_return2)
            //повышение
            IF($_return2 > 935)
                $napr = 1
            END_IF
            //понижение
            IF($_return2 < 870)
                $napr = 2
            END_IF
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
    stavka($napr)
   
    //==========================================================================
    $proigr = 0
    WHILE($proigr < 2)
        // отслеживание окончания сделки выигрыша
        GETSCREEN(100,932,390,986)
        IF_PIXEL_IN(100,932,390,986,4709631)  // выигрыш
            GETSCREEN
            SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
            //------------------------------------
            PRINT ("выигрыш")
            PRINT("==================")
            WAIT(1)
            $proigr = 5
            $wt = 0
        ELSE
            GETSCREEN(343,932,390,958)
            IF_PIXEL_IN(343,932,390,958,16777215)  // проигрыш
                //скриншот
                GETSCREEN
                SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-",$_time_m,"-", $_time_s,".bmp"),0)
                //------------------------------------
                PRINT ("проигрыш")
                PRINT("==================")
                INC($wt, -1)
                PRINT("попыток", " ", $wt)
                IF($wt > 0)
                    $startSume = $startSume*$stepIncriment
                    //PRINT("сумма", " ", $startSume)
                    IF($proigr = 0)
                        first_ini()
                        $check = 0
                        WHILE($check = 0)
                            //PRINT("поиск 2 зоны")
                            GETSCREEN(1645,877,1645,934)
                            IF_PIXEL_IN(1645,877,1645,934,2176491)
                                $check = 1
                                stavka($napr)
                            ELSE
                                WAITMS(50)
                            END_IF
                        END_CYC
                    END_IF
                    INC($proigr)
                END_IF
               
                IF($proigr = 0)
                    stavka($napr)
                END_IF
            ELSE
                WAITMS(50)
            END_IF
        END_IF
    END_CYC
END_CYC

Мне кажется логика чуть неправильная начиная с исходного скрипта. Проще делать если есть ещё словесное описание что должно происходить. Неограниченные петли меня смущают.
« Last Edit: December 27, 2018, 02:20:44 PM by Vint »


aast2012

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: оптимизация кода
« Reply #4 on: December 27, 2018, 11:06:13 PM »
там надо добавить
if($wait = 0)
      print("окончание попыток")
      print("===============")
      goto(start)
     end_if               
   
вот куда прошу добавить вам в новый скрипт... ваш скрипт буду использовать для собственного обучения, так как я не програмист , а самоучка... пишу скрипты как могу... уже многое в этих новых скриптах я взял с исправлений ваших ранее... спс за ответы

aast2012

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: оптимизация кода
« Reply #5 on: December 28, 2018, 12:30:46 AM »
Code: (clickermann) [Select]
#logfile
start:

$startSume = 1
$stepIncriment = 3     // умножение

$wait=2              // попыток


if($wait > 0)
   lclick(1789,210)
   waitms(200)
   
   FOR($a=0,$a<10) // первая инициализация для старта
      KEYPRESS(#BACKSPACE)
      WAITMS(20)
   END_CYC
   wait(1)
   print("попыток"," ", $wait)
   KEYSTRING($startSume)
   waitms(200)
   
 start1:
 
   $var = 0
   $check = 0
   $vverh = 0
   $vniz = 0
   $checkk = 0
   $proigr = 0
   //===========================================================================
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(1645,856,1645,954,2176491)
         
         
         $var = $_return2
         // move($_return1, $_return2)
         
      END_IF
     
      if ($var>935)
         //повышение
         $check = 1
         $vverh = 1
         $vniz = 0
         //move($_return1, $_return2)
         
      END_IF
     
     
      if ($var<870)
         //понижение
         $check = 1
         //move($_return1, $_return2)
         $vverh = 0
         $vniz = 1
      END_IF
   END_CYC
   
   //=====================================================================
   
   if ($vverh = 1)
     
      print("ставка","-", $startSume)
      //----------------------
      KEYDOWN (#Q) // нажатие клавиши "Q"
      WAITMS (50)
      KEYUP (#Q)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
   
   if ($vniz = 1)
     
      print("ставка","-", $startSume)
      KEYDOWN (#R)  // нажатие клавиши "R"
      WAITMS (50)
      KEYUP (#R)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
   
   //=============================================================================
   
   WHILE($checkk = 0)
      //Print ("отслеживаем")
      //Print ($checkk, " ", "окончание")
      // отслеживание окончания сделки выигрыша
      GETSCREEN
      IF_PIXEL_IN(100,932,390,986,4709631)  // выигрыш
         //скриншот
         GETSCREEN
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
         //------------------------------------
         Print ("выигрыш")
         print("==================")
         wait(1)
         goto(start)
      end_if
      //--------------------------------
      // отслеживание окончания сделки проигрыша
      GETSCREEN
      IF_PIXEL_IN(343,932,390,958,16777215)  // проигрыш
         //скриншот
         GETSCREEN
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-",$_time_m,"-", $_time_s,".bmp"),0)
         //------------------------------------
         Print ("проигрыш")
         print("==================")
         INC($wait,-1)
         print("попыток", " ", $wait)
         if($wait = 0)
      print("окончание попыток")
      print("===============")
      goto(start)
     end_if      
         if($wait > 0)
            $startSume = $startSume*$stepIncriment
            //print("сумма", " ", $startSume)
            $proigr = 1
            $checkk = 1
            lclick(1789,210)
           
            waitms(200)
           
            FOR($a=0,$a<10) // первая инициализация для старта
               KEYPRESS(#BACKSPACE)
               WAITMS(20)
            END_CYC
            wait(1)
           
            KEYSTRING($startSume)
           
            wait(1)
            WHILE($proigr = 1)
             //print("поиск 2 зоны")
               GETSCREEN
               IF_PIXEL_IN(1645,877,1645,934,2176491)
                  $proigr = 2
               END_IF
            END_CYC
      END_IF
 
            if ($vverh = 1)
               
               print("ставка","-", $startSume)
               //----------------------
               KEYDOWN (#Q) // нажатие клавиши "Q"
               WAITMS (50)
               KEYUP (#Q)
               WAIT (2)
               
               //скриншот
               GETSCREEN
               SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
               //------------------------------------
               WAIT (15)
            END_IF
           
            if ($vniz = 1)
               
               print("ставка","-", $startSume)
               KEYDOWN (#R)  // нажатие клавиши "R"
               WAITMS (50)
               KEYUP (#R)
               WAIT (2)
               
               //скриншот
               GETSCREEN
               SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
               //------------------------------------
               WAIT (15)
            END_IF
           
            //=============================================================================
           
            WHILE($proigr = 2)
               
               //Print ("отслеживаем")
               // отслеживание окончания сделки выигрыша
               GETSCREEN
               IF_PIXEL_IN(100,932,390,986,4709631)  // выигрыш
                  //скриншот
                  GETSCREEN
                  SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
                  //------------------------------------
                  Print ("выигрыш")
                  print("==================")
                  wait(1)
                  goto(start)
               end_if
               //--------------------------------
               // отслеживание окончания сделки проигрыша
               GETSCREEN
               IF_PIXEL_IN(343,932,390,958,16777215)  // проигрыш
                  //скриншот
                  GETSCREEN
                  SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-",$_time_m,"-", $_time_s,".bmp"),0)
                  //------------------------------------
                  Print ("проигрыш")
                  print("==================")
                  INC($wait,-1)
                  print("попыток", " ", $wait)
                  if($wait = 0)
      print("окончание попыток")
      print("===============")
      goto(start)
     end_if
                  if($wait > 0)
                     $startSume = $startSume*$stepIncriment
                     //print("сумма", " ", $startSume)
                     $proigr = 1
                     $checkk = 0
                     lclick(1789,210)
                     
                     waitms(200)
                     
                     FOR($a=0,$a<10) // первая инициализация для старта
                        KEYPRESS(#BACKSPACE)
                        WAITMS(20)
                     END_CYC
                     wait(1)
                     
                     KEYSTRING($startSume)
                     
                     wait(1)
                     Goto(start1)
                     
                  END_IF
                 
                 
                END_IF 
               END_CYC

 
 
            END_IF
           
           
           
   END_CYC         
 
         
     
   END_IF
       
« Last Edit: December 28, 2018, 07:05:18 AM by Oraven »

aast2012

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: оптимизация кода
« Reply #6 on: December 28, 2018, 12:31:07 AM »
с добавленным кодом

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: оптимизация кода
« Reply #7 on: December 28, 2018, 07:05:56 AM »
Code: (clickermann) [Select]
#logfile


SUB(vverh) // подпрограмма
   IF ($vverh = 1)
     
      print("ставка","-", $startSume)
      //----------------------
      KEYDOWN (#Q) // нажатие клавиши "Q"
      WAITMS (50)
      KEYUP (#Q)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
END_SUB

SUB(vniz) // подпрограмма
   IF ($vniz = 1)
     
      print("ставка","-", $startSume)
      KEYDOWN (#R)  // нажатие клавиши "R"
      WAITMS (50)
      KEYUP (#R)
      WAIT (2)
     
      //скриншот
      GETSCREEN
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      WAIT (15)
   END_IF
END_SUB

//=============================================================================================


$startSume = 1
$stepIncriment = 3     // умножение
$wait=10               // попыток

lclick(1789,210)
waitms(200)

FOR($a=0,$a<10) // первая инициализация для старта
   KEYPRESS(#BACKSPACE)
   WAITMS(20)
END_CYC
wait(1)

print("попыток"," ", $wait)
KEYSTRING($startSume)
waitms(200)

start:

//===========================================================================

$check = 0
WHILE($check = 0)
   GETSCREEN(1645,856,1645,954)
   IF_PIXEL_IN(1645,856,1645,954,2176491)
      IF($_return2>935)
         //повышение
         $check = 1
         $vverh = 1
         $vniz = 0
         vverh()
      ELSE
         IF($_return2<870)
            //понижение
            $check = 1
            $vverh = 0
            $vniz = 1
            vniz()
         ELSE
            WAITMS (20)
         END_IF
      END_IF
   ELSE
      WAITMS (20)
   END_IF
END_CYC

//=============================================================================

$proigr = 0
WHILE($proigr < 2)
   
   //Print ("отслеживаем")
   //Print ($check, " ", "окончание")
   // отслеживание окончания сделки выигрыша
   GETSCREEN
   IF_PIXEL_IN(100,932,390,986,4709631)  // выигрыш
      //скриншот
      SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-", $_time_m,"-", $_time_s,".bmp"),0)
      //------------------------------------
      Print ("выигрыш")
      print("==================")
      wait(1)
      $proigr = 3
   ELSE
      //--------------------------------
      // отслеживание окончания сделки проигрыша
      IF_PIXEL_IN(343,932,390,958,16777215)  // проигрыш
         //скриншот
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT($_time_h,"-",$_time_m,"-", $_time_s,".bmp"),0)
         //------------------------------------
         Print ("проигрыш")
         print("==================")
         INC($wait,-1)
         print("попыток", " ", $wait)
         
         IF($wait > 0)
            $startSume = $startSume*$stepIncriment
            //print("сумма", " ", $startSume)
            INC($proigr,1)
           
            lclick(1789,210)
            waitms(200)
           
            FOR($a=0,$a<10) // первая инициализация для старта
               KEYPRESS(#BACKSPACE)
               WAITMS(20)
            END_CYC
            wait(1)
           
            KEYSTRING($startSume)
            wait(1)
           
            IF($proigr = 1)
               $check = 0
               WHILE($check = 0)
                  //print("поиск 2 зоны")
                  GETSCREEN(1645,877,1645,934)
                  IF_PIXEL_IN(1645,877,1645,934,2176491)
                     $check = 1
                  ELSE
                     WAITMS(20)
                  END_IF
               END_CYC
            END_IF
         ELSE
            $proigr = 3
         END_IF
         
         IF($proigr = 1)
            vverh()
            vniz()
         END_IF
         
      END_IF
   END_IF
   
END_CYC

IF($proigr < 3)
   Goto(start)
END_IF

aast2012

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: оптимизация кода
« Reply #8 on: December 29, 2018, 10:25:52 PM »
А зачем в команде GETSCREEN(1645,856,1645,954) ставить диапазон??? я думал что эта команда ставиться без диапазона, а далее мы указываем его с командой действия

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: оптимизация кода
« Reply #9 on: December 30, 2018, 08:23:35 AM »
А зачем в команде GETSCREEN(1645,856,1645,954) ставить диапазон??? я думал что эта команда ставиться без диапазона, а далее мы указываем его с командой действия

Ограниченная область снимка снижает затраты процессора. Имеет значение при циклических снимках раз в 20 мс.

Можно просто сделать скрипт из двух команд, снимок и задержка, открыть диспетчер задач и посмотреть как кликер нагружает процессор.

Конечно для 6 и более ядерного процессора это не так критично, а вот для старых компов с 2у ядерными весомая разгрузка процессора.