Author Topic: пропуск переменных по условию  (Read 5126 times)

0 Members and 1 Guest are viewing this topic.

panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
пропуск переменных по условию
« on: August 21, 2018, 11:59:02 AM »
Ребят, подскажите пожалуйста,искал,нигде не нашел.
У меня есть условие 1 , 2 и проверки 3 , 4 .  Если проверка 3 верна , то возвращается к 1 , если не верна , то выполняет действие 5 после которого должно вернуть к 1.Для проверки 4 аналогичное условие, если верна отправляет на 2 , если нет , отправляет на 6 , после чего снова на 1. Все это должно идти без остановки.Подскажите пожалуйста какими функциями,строками это можно организовать ? буду очень вам благодарен! ;)


Code: (clickermann) [Select]
// 1
LCLICK(410,464)
LCLICK(751,534)
LCLICK(751,534)
RCLICK(751,534)
WAITMS(50)
LCLICK(830,596)
RCLICK(1838,639) 
WAITMS(50)
LCLICK(1765,689)
LCLICK(1873,956)
LCLICK(1721,1007)
LCLICK(1800,1008) 
LCLICK(1721,1007)   
LCLICK(1721,1007)   
LCLICK(1721,1007)     
LCLICK(1721,1007)       
LCLICK(1642,960) //1
LCLICK(1872,1005)
RCLICK(1838,639)
WAITMS(300)
LCLICK(1763,663)   
WAITMS(500)
LCLICK(751,534)
LCLICK(751,534)
WAITMS(500)
RCLICK(751,534)
WAITMS(500)
LCLICK(850,629)
WAITMS(500)
LCLICK(912,609)
waitms(200)
LCLICK(819,704)
wait(3)

// 2

LCLICK(424,372)
LCLICK(1013,535)
LCLICK(1013,535)   
RCLICK(1013,535)
WAITMS(200)
LCLICK(1077,603)
RCLICK(1816,642)
WAITMS(200)
LCLICK(1747,696)                                 
LCLICK(1878,904)
LCLICK(1720,1005)
LCLICK(1799,1008)
LCLICK(1720,1005) 
LCLICK(1720,1005)   
LCLICK(1720,1005)     
LCLICK(1720,1005)         
LCLICK(1645,961)       
LCLICK(1870,1010)   
RCLICK(1824,645)
WAITMS(200)
LCLICK(1737,677)
LCLICK(1013,535)
LCLICK(1013,535)
keydown(#ctrl)
waitms(200)
keypress(#v)
LCLICK(1177,605)
LCLICK(1085,703)

// 3 - если оно верно направляет на 1 , если нет , то на 5

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "buy.bmp", -1, 100)
END_IF

// 4 - если оно верно направляет на 2 , если нет , то на 6

$_N1=1350 
$_N2=86
 
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "sell.bmp", -1, 100)
END_IF

// 5 - после выполнения отправляет на 1

$_N1=1350 
$_N2=86

GETSCREEN (720,857,769,987) 
IF_PIXEL_IN(720,857,769,987,7255099)

 
   MOVE($_return1, $_return2) 
   WAITMS(500)
 
   FOR($a=0,$a<$_N1) 
      MOVER(1,0)   
   END_CYC
 
   WAITMS(500)
   LCLICK($_xmouse, $_ymouse)
   
 
   FOR($a=0,$a<$_N2) 
      MOVER(0,-1)   
            //скорость
   END_CYC
 
   WAIT(1)
   LCLICK($_xmouse, $_ymouse)
   WAIT(1)
END_IF

//6 -  после выполнения отправляет на 2

$_N1=1350 
$_N2=86

GETSCREEN (720,857,769,987)   
IF_PIXEL_IN(720,857,769,987,4411888)

 
   MOVE($_return1, $_return2)
   WAITMS(500)
 
   FOR($a=0,$a<$_N1) 
      MOVER(1,0)     
           
   END_CYC
 
   WAITMS(500)
   LCLICK($_xmouse, $_ymouse)
   
 
   FOR($a=0,$a<$_N2) 
      MOVER(0,-1)     
   END_CYC
 
   WAIT(1)
   LCLICK($_xmouse, $_ymouse)
   WAIT(1)
END_IF
« Last Edit: August 28, 2018, 12:07:38 AM by panelka2 »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: помогите пожалуйста
« Reply #1 on: August 21, 2018, 08:51:13 PM »
Что-то тут не так:

выполняем №1
выполняем №2
условие №3 -> если вено, возврат к №1, потом №2 и опять условие №3 и тд...
                   -> если нет, то идем к №5, а после №5 снова возврат к №1, потом №2 и опять условие №3 и тд...

получается, что №4 и №6 никогда не будут учитываться.

Не верно составлен алгоритм.

panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: помогите пожалуйста
« Reply #2 on: August 21, 2018, 09:31:31 PM »
Что-то тут не так:

выполняем №1
выполняем №2
условие №3 -> если вено, возврат к №1, потом №2 и опять условие №3 и тд...
                   -> если нет, то идем к №5, а после №5 снова возврат к №1, потом №2 и опять условие №3 и тд...

получается, что №4 и №6 никогда не будут учитываться.

Не верно составлен алгоритм.
Чутка подправил. Суть в том , что после любого действия 3,4,5,6 должно возвращаться на 1,2.Просто проверка 3 относится 1 , и если оно не верно отменяет условием 5, соответственно 4 относится к 2 и отменяется условием 6.Надеюсь понятно объяснил.
« Last Edit: August 21, 2018, 09:35:38 PM by panelka2 »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: помогите пожалуйста
« Reply #3 on: August 21, 2018, 09:46:55 PM »
Суть в том , что после любого действия 3,4,5,6 должно возвращаться на 1,2.Просто проверка 3 относится 1 , и если оно не верно отменяет условием 5, соответственно 4 относится к 2 и отменяется условием 6.Надеюсь понятно объяснил.
Я ничего не понял  :D .

Да и ладно. Если это все что тебе требуется и это весь код, то вот тебе чудо оператор - GOTO .  Экспериментируй...
Но в начале желательно ознакомиться с этим чудом в этой теме http://crapware.aidf.org/forum/index.php?topic=49.0
Как он работает - читаем в справке:
Quote
GOTO

Переводит интерпретацию на строку с меткой.

Синтаксис:
GOTO (label)

Параметры:
label - имя метки

Пример:

goto(skip)
logwrite("nope") // пропускается
skip:
logwrite("yea")  // выполнится

Примечания:
Переход на метку допускается в рамках блоков одного уровня вложенности. Текстовая метка задается без кавычек, в тексте скрипта после текстовой метки обязательно должно идти двоеточие ":", как в примере. Метка занимает всю строку



panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: помогите пожалуйста
« Reply #4 on: August 21, 2018, 10:10:32 PM »
Суть в том , что после любого действия 3,4,5,6 должно возвращаться на 1,2.Просто проверка 3 относится 1 , и если оно не верно отменяет условием 5, соответственно 4 относится к 2 и отменяется условием 6.Надеюсь понятно объяснил.
Я ничего не понял  :D .

Да и ладно. Если это все что тебе требуется и это весь код, то вот тебе чудо оператор - GOTO .  Экспериментируй...
Но в начале желательно ознакомиться с этим чудом в этой теме http://crapware.aidf.org/forum/index.php?topic=49.0
Как он работает - читаем в справке:
Quote
GOTO

Переводит интерпретацию на строку с меткой.

Синтаксис:
GOTO (label)

Параметры:
label - имя метки

Пример:

goto(skip)
logwrite("nope") // пропускается
skip:
logwrite("yea")  // выполнится

Примечания:
Переход на метку допускается в рамках блоков одного уровня вложенности. Текстовая метка задается без кавычек, в тексте скрипта после текстовой метки обязательно должно идти двоеточие ":", как в примере. Метка занимает всю строку


Спасибо , сейчас попробую!

panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: помогите пожалуйста
« Reply #5 on: August 21, 2018, 11:07:58 PM »
Попробовал , и это немного не то , да и по отзывам не очень меня заинтересовал, учитывая как мне дорога цена ошибки)

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите пожалуйста
« Reply #6 on: August 22, 2018, 03:40:06 PM »
Здесь по ходу пошагово мутить нужно  ;D

учитывая как мне дорога цена ошибки)
Ну... Если у тебя проект коммерческий, дай ребятам чуток... Для стимула  ;)
« Last Edit: August 22, 2018, 03:42:06 PM by Hito »
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: помогите пожалуйста
« Reply #7 on: August 22, 2018, 09:55:51 PM »
Всего то нужно правильно составить алгоритм. Пока что в описании ничего не понятно.

После чего должна быть проверка №4? Судя по описанию задачи, до №4 не дойдет никогда.
Попробуй нарисовать чтоли если словами сложно обьяснить. Или напиши как и что после чего происходит в реале.

Просто вот это:
Quote
У меня есть условие 1 , 2 и проверки 3 , 4 .  Если проверка 3 верна , то возвращается к 1 , если не верна , то выполняет действие 5 после которого должно вернуть к 1.Для проверки 4 аналогичное условие, если верна отправляет на 2 , если нет , отправляет на 6 , после чего снова на 1.
Будет крутить только  1, 2, 3 и 5 . До 4 и 6 не дойдет.

Quote
Суть в том , что после любого действия 3,4,5,6 должно возвращаться на 1,2.Просто проверка 3 относится 1 , и если оно не верно отменяет условием 5, соответственно 4 относится к 2 и отменяется условием 6.Надеюсь понятно объяснил.
Это вообще не понять  :-\.


panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: помогите пожалуйста
« Reply #8 on: August 22, 2018, 10:58:46 PM »
Всего то нужно правильно составить алгоритм. Пока что в описании ничего не понятно.

После чего должна быть проверка №4? Судя по описанию задачи, до №4 не дойдет никогда.
Попробуй нарисовать чтоли если словами сложно обьяснить. Или напиши как и что после чего происходит в реале.

Просто вот это:
Quote
У меня есть условие 1 , 2 и проверки 3 , 4 .  Если проверка 3 верна , то возвращается к 1 , если не верна , то выполняет действие 5 после которого должно вернуть к 1.Для проверки 4 аналогичное условие, если верна отправляет на 2 , если нет , отправляет на 6 , после чего снова на 1.
Будет крутить только  1, 2, 3 и 5 . До 4 и 6 не дойдет.

Quote
Суть в том , что после любого действия 3,4,5,6 должно возвращаться на 1,2.Просто проверка 3 относится 1 , и если оно не верно отменяет условием 5, соответственно 4 относится к 2 и отменяется условием 6.Надеюсь понятно объяснил.
Это вообще не понять  :-\.
Значит смотри, постараюсь объяснить на примере колбасы. Есть продуктовый магазин в котором много работников.Все хотят продать колбасу дороже , а купить дешевле. С помощью 1 я выступаю в роли покупателя .Блок 1 позволяет мне купить колбасу , выставляя цену дороже предыдущего покупателя.С помощью 3 я прохожу около подноса с деньгами и проверяю продали ли мне колбасу.Если ее мне продали , я кладу свои деньги (купить) ((1)) еще раз. Если кто-то из покупателей хочет купить дороже меня , я с помощью 5 поднимаю деньги и кладу больше денег за кусок колбасы и возвращаю деньги на поднос (1). Благодаря 2 я становлюсь продавцом и кладу колбасу ближе к покупателю. С помощью 4 я прохожу около подноса с колбасками и проверяю не купил ли кто ее у меня . Если у меня ее покупают я еще раз кладу колбасу 2 . Если какой-то продавец продает колбасу выгодней я с помощью  6 поднимаю колбасу и ЕДИНИЦЕЙ (1) кладу ее ближе к покупателю. Надеюсь сейчас объяснил понятней, пожалуйста ребят помогите продать пару колбасок :'(

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: помогите пожалуйста
« Reply #9 on: August 22, 2018, 11:55:05 PM »
Так более менее понятно  :D .
Я представил себе, что у тебя два окна, в одном ты покупатель, а во втором ты продавец.

Code: (clickermann) [Select]
//тут две подпрограммы, они выше основного кода
SUB(buy)
   // 1  ставим цену выше других и пытаемся купить колбасу
   LCLICK(410,464)
   LCLICK(751,534)
   LCLICK(751,534)
   RCLICK(751,534)
   WAITMS(50)
   LCLICK(830,596)
   RCLICK(1838,639)
   WAITMS(50)
   LCLICK(1765,689)
   LCLICK(1873,956)
   LCLICK(1721,1007)
   LCLICK(1800,1008)
   LCLICK(1721,1007)
   LCLICK(1721,1007)
   LCLICK(1721,1007)
   LCLICK(1721,1007)
   LCLICK(1642,960)
   LCLICK(1872,1005)
   RCLICK(1838,639)
   WAITMS(300)
   LCLICK(1763,663)
   WAITMS(500)
   LCLICK(751,534)
   LCLICK(751,534)
   WAITMS(500)
   RCLICK(751,534)
   WAITMS(500)
   LCLICK(850,629)
   WAITMS(500)
   LCLICK(912,609)
   waitms(200)
   LCLICK(819,704)
   wait(3)
END_SUB
 
SUB(sell)
   // 2 выставляю колбаску на продажу
 
   LCLICK(424,372)
   LCLICK(1013,535)
   LCLICK(1013,535)
   RCLICK(1013,535)
   WAITMS(200)
   LCLICK(1077,603)
   RCLICK(1816,642)
   WAITMS(200)
   LCLICK(1747,696)
   LCLICK(1878,904)
   LCLICK(1720,1005)
   LCLICK(1799,1008)
   LCLICK(1720,1005)
   LCLICK(1720,1005)
   LCLICK(1720,1005)
   LCLICK(1720,1005)
   LCLICK(1645,961)
   LCLICK(1870,1010)
   RCLICK(1824,645)
   WAITMS(200)
   LCLICK(1737,677)
   LCLICK(1013,535)
   LCLICK(1013,535)
   keydown(#ctrl)
   waitms(200)
   keypress(#v)
   LCLICK(1177,605)
   LCLICK(1085,703)
END_SUB

//далее наш выполняемый код.
 
// для начала, пробуем купить и продать
buy() //выполнение подпрограмм, которые описаны выше
sell()
 
 
//далее, бесконечный цикл, где будем проверять - купили или нет, продали или нет
WHILE(1)
 
   // 3 - проверяем, продали мне ее или нет
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "buy.bmp", -1, 100)
      //если продали
      print("колбаса моя!")
      buy() //снова пытаемся купить
   else
      //если не продали
      // 5 -  забираем деньги
 
      $_N1=1350
      $_N2=86
 
      GETSCREEN (720,857,769,987)
      IF_PIXEL_IN(720,857,769,987,7255099)
 
 
         MOVE($_return1, $_return2)
         WAITMS(500)
 
         FOR($a=0,$a<$_N1)
            MOVER(1,0)
         END_CYC
 
         WAITMS(500)
         LCLICK($_xmouse, $_ymouse)
 
 
         FOR($a=0,$a<$_N2)
            MOVER(0,-1)
            //скорость
         END_CYC
 
         WAIT(1)
         LCLICK($_xmouse, $_ymouse)
         WAIT(1)
      END_IF
 
      buy() // и снова пытаемся купить
   END_IF
 
   //-----------------------------------------------
 
   // 4  проверяем, купил у меня кто колбасу или нет
   $_N1=1350
   $_N2=86
 
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "sell.bmp", -1, 100)
      //если купили
      print("колбаса продана!")
      sell() //пытаемся продать еще
   else
      //если не купили
 
      //6 - поднимаю колбасу
      //
      $_N1=1350
      $_N2=86
 
      GETSCREEN (720,857,769,987)
      IF_PIXEL_IN(720,857,769,987,4411888)
 
 
         MOVE($_return1, $_return2)
         WAITMS(500)
 
         FOR($a=0,$a<$_N1)
            MOVER(1,0)
 
         END_CYC
 
         WAITMS(500)
         LCLICK($_xmouse, $_ymouse)
 
 
         FOR($a=0,$a<$_N2)
            MOVER(0,-1)
         END_CYC
 
         WAIT(1)
         LCLICK($_xmouse, $_ymouse)
         WAIT(1)
      END_IF
 
      //ЕДИНИЦЕЙ (1) кладу ее ближе к покупателю ??? а не двойкой случайно?
      buy() //  (1)
 
      // или
      // sell() // и пытаемся продать еще раз (2)
 
   END_IF
 
END_CYC

Немного непонятно вот это
Quote
Если какой-то продавец продает колбасу выгодней я с помощью  6 поднимаю колбасу и ЕДИНИЦЕЙ (1) кладу ее ближе к покупателю
Скорее всего, после поднятия колбасы, нужно ее выставить снова на продажу ДВОЙКОЙ. В коде сам поправишь как должно быть правильно.

panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: помогите пожалуйста
« Reply #10 on: August 23, 2018, 02:32:31 AM »
Так более менее понятно  :D .
Я представил себе, что у тебя два окна, в одном ты покупатель, а во втором ты продавец.

Code: (clickermann) [Select]
//тут две подпрограммы, они выше основного кода
SUB(buy)
   // 1  ставим цену выше других и пытаемся купить колбасу
   LCLICK(410,464)
   LCLICK(751,534)
   LCLICK(751,534)
   RCLICK(751,534)
   WAITMS(50)
   LCLICK(830,596)
   RCLICK(1838,639)
   WAITMS(50)
   LCLICK(1765,689)
   LCLICK(1873,956)
   LCLICK(1721,1007)
   LCLICK(1800,1008)
   LCLICK(1721,1007)
   LCLICK(1721,1007)
   LCLICK(1721,1007)
   LCLICK(1721,1007)
   LCLICK(1642,960)
   LCLICK(1872,1005)
   RCLICK(1838,639)
   WAITMS(300)
   LCLICK(1763,663)
   WAITMS(500)
   LCLICK(751,534)
   LCLICK(751,534)
   WAITMS(500)
   RCLICK(751,534)
   WAITMS(500)
   LCLICK(850,629)
   WAITMS(500)
   LCLICK(912,609)
   waitms(200)
   LCLICK(819,704)
   wait(3)
END_SUB
 
SUB(sell)
   // 2 выставляю колбаску на продажу
 
   LCLICK(424,372)
   LCLICK(1013,535)
   LCLICK(1013,535)
   RCLICK(1013,535)
   WAITMS(200)
   LCLICK(1077,603)
   RCLICK(1816,642)
   WAITMS(200)
   LCLICK(1747,696)
   LCLICK(1878,904)
   LCLICK(1720,1005)
   LCLICK(1799,1008)
   LCLICK(1720,1005)
   LCLICK(1720,1005)
   LCLICK(1720,1005)
   LCLICK(1720,1005)
   LCLICK(1645,961)
   LCLICK(1870,1010)
   RCLICK(1824,645)
   WAITMS(200)
   LCLICK(1737,677)
   LCLICK(1013,535)
   LCLICK(1013,535)
   keydown(#ctrl)
   waitms(200)
   keypress(#v)
   LCLICK(1177,605)
   LCLICK(1085,703)
END_SUB

//далее наш выполняемый код.
 
// для начала, пробуем купить и продать
buy() //выполнение подпрограмм, которые описаны выше
sell()
 
 
//далее, бесконечный цикл, где будем проверять - купили или нет, продали или нет
WHILE(1)
 
   // 3 - проверяем, продали мне ее или нет
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "buy.bmp", -1, 100)
      //если продали
      print("колбаса моя!")
      buy() //снова пытаемся купить
   else
      //если не продали
      // 5 -  забираем деньги
 
      $_N1=1350
      $_N2=86
 
      GETSCREEN (720,857,769,987)
      IF_PIXEL_IN(720,857,769,987,7255099)
 
 
         MOVE($_return1, $_return2)
         WAITMS(500)
 
         FOR($a=0,$a<$_N1)
            MOVER(1,0)
         END_CYC
 
         WAITMS(500)
         LCLICK($_xmouse, $_ymouse)
 
 
         FOR($a=0,$a<$_N2)
            MOVER(0,-1)
            //скорость
         END_CYC
 
         WAIT(1)
         LCLICK($_xmouse, $_ymouse)
         WAIT(1)
      END_IF
 
      buy() // и снова пытаемся купить
   END_IF
 
   //-----------------------------------------------
 
   // 4  проверяем, купил у меня кто колбасу или нет
   $_N1=1350
   $_N2=86
 
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "sell.bmp", -1, 100)
      //если купили
      print("колбаса продана!")
      sell() //пытаемся продать еще
   else
      //если не купили
 
      //6 - поднимаю колбасу
      //
      $_N1=1350
      $_N2=86
 
      GETSCREEN (720,857,769,987)
      IF_PIXEL_IN(720,857,769,987,4411888)
 
 
         MOVE($_return1, $_return2)
         WAITMS(500)
 
         FOR($a=0,$a<$_N1)
            MOVER(1,0)
 
         END_CYC
 
         WAITMS(500)
         LCLICK($_xmouse, $_ymouse)
 
 
         FOR($a=0,$a<$_N2)
            MOVER(0,-1)
         END_CYC
 
         WAIT(1)
         LCLICK($_xmouse, $_ymouse)
         WAIT(1)
      END_IF
 
      //ЕДИНИЦЕЙ (1) кладу ее ближе к покупателю ??? а не двойкой случайно?
      buy() //  (1)
 
      // или
      // sell() // и пытаемся продать еще раз (2)
 
   END_IF
 
END_CYC

Немного непонятно вот это
Quote
Если какой-то продавец продает колбасу выгодней я с помощью  6 поднимаю колбасу и ЕДИНИЦЕЙ (1) кладу ее ближе к покупателю
Скорее всего, после поднятия колбасы, нужно ее выставить снова на продажу ДВОЙКОЙ. В коде сам поправишь как должно быть правильно.
А какие должны быть "подпрограммы" ? Я просто с деревни :-[

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите пожалуйста
« Reply #11 on: August 23, 2018, 08:01:56 AM »
А какие должны быть "подпрограммы" ? Я просто с деревни :-[

Подпрограммы можно вызывать в любом месте скрипта. По сути подпрограммы - что-то вроде заранее заготовленного кода.
Code: (clickermann) [Select]
SUB(buy) // Вход в подпрограмму ("buy" - имя подпрограммы)
// Тело подпрограммы
END_SUB // Выход из подпрограммы

buy() // Вызов подпрограммы
Я не ду... Потому и не бу...

panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: помогите пожалуйста
« Reply #12 on: August 23, 2018, 08:48:14 PM »
А какие должны быть "подпрограммы" ? Я просто с деревни :-[

Подпрограммы можно вызывать в любом месте скрипта. По сути подпрограммы - что-то вроде заранее заготовленного кода.
Code: (clickermann) [Select]
SUB(buy) // Вход в подпрограмму ("buy" - имя подпрограммы)
// Тело подпрограммы
END_SUB // Выход из подпрограммы

buy() // Вызов подпрограммы
Code: [Select]

//тут две подпрограммы, они выше основного кода
SUB(buy)
   // 1  ставим цену выше других и пытаемся купить колбасу
   LCLICK(410,464)
   LCLICK(746,535)
   LCLICK(746,535)
   keydown(#ctrl)
waitms(200)
keypress(#c)
LCLICK(1824,641)
   keydown(#ctrl)
waitms(200)
keypress(#v)
LCLICK(1873,956) //+
      WAITMS(200)
LCLICK(1721,1007)   //0
       WAITMS(200)
LCLICK(1800,1008)      //,
       WAITMS(200)
LCLICK(1721,1007)         //0
      WAITMS(200)
LCLICK(1721,1007)       //0
       WAITMS(200)
LCLICK(1721,1007)       //0
       WAITMS(200)
LCLICK(1721,1007)       //0
       WAITMS(200)
LCLICK(1642,960)         //1
       WAITMS(200)
LCLICK(1872,1005)        //=
       WAITMS(200)
LCLICK(1838,639)
         keydown(#ctrl) 
keypress(#c)
LCLICK(742,538)
LCLICK(742,538)
WAITMS(200)
keydown(#ctrl) 
keypress(#v)
 WAITMS(200)
LCLICK(904,614)
 WAITMS(200)
LCLICK(820,707)

wait(4)
END_SUB

 
SUB(sell)
   // 2 выставляю колбаску на продажу
 
      WAITMS(200)
LCLICK(402,373)
  WAITMS(200)


LCLICK(1002,535)
LCLICK(1002,535)
    keydown(#ctrl) 
keypress(#c)
LCLICK(1811,632)
       keydown(#ctrl)
keypress(#v)
   LCLICK(1878,904)
   WAITMS(200)
   LCLICK(1720,1005)
   WAITMS(200)
   LCLICK(1799,1008)
   WAITMS(200)
   LCLICK(1720,1005)
   WAITMS(200)
LCLICK(1720,1005)
      WAITMS(200)
LCLICK(1720,1005)
     WAITMS(200)
LCLICK(1720,1005)
      WAITMS(200)
LCLICK(1645,961)
     WAITMS(200)
LCLICK(1870,1010)
      WAITMS(200)
RCLICK(1824,645)
     
WAITMS(200)
   
LCLICK(1737,677)
      WAITMS(200)
LCLICK(1002,535)
WAITMS(200)
   LCLICK(1002,535)
   
keydown(#ctrl)
   
WAITMS(200)
   keypress(#v)
   LCLICK(1178,616)
       WAITMS(200)
LCLICK(1085,703)
   wait(4)
END_SUB
 
//далее наш выполняемый код.
 
// для начала, пробуем купить и продать
 //выполнение подпрограмм, которые описаны выше

 
 
//далее, бесконечный цикл, где будем проверять - купили или нет, продали или нет
     start:
         buy()
         sell()
goto(start)
   // 3 - проверяем, продали мне ее или нет
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "buy.bmp", -1, 100)
      //если продали
      print("колбаса моя!")
      //снова пытаемся купить
   else
      //если не продали
      // 5 -  забираем деньги
 
      $_N1=1350
      $_N2=86
 
      GETSCREEN (720,857,769,987)
      IF_PIXEL_IN(720,857,769,987,7255099)
 
 
         MOVE($_return1, $_return2)
         WAITMS(500)
 
         FOR($a=0,$a<$_N1)
            MOVER(1,0)
         END_CYC
 
         WAITMS(500)
         LCLICK($_xmouse, $_ymouse)
 
 
         FOR($a=0,$a<$_N2)
            MOVER(0,-1)
           
         END_CYC
 
         WAIT(1)
         LCLICK($_xmouse, $_ymouse)
         WAIT(1)
       buy()
END_IF
 
       // и снова пытаемся купить
   END_IF
 
   //-----------------------------------------------
 
   // 4  проверяем, купил у меня кто колбасу или нет
   $_N1=1350
   $_N2=86
 
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "sell.bmp", -1, 100)
      //если купили
      print("колбаса продана!")
       //пытаемся продать еще
   else
      //если не купили
 
      //6 - поднимаю колбасу
      //
      $_N1=1350
      $_N2=86
 
      GETSCREEN (720,857,769,987)
      IF_PIXEL_IN(720,857,769,987,4411888)
 
 
         MOVE($_return1, $_return2)
         WAITMS(500)
 
         FOR($a=0,$a<$_N1)
            MOVER(1,0)
 
         END_CYC
 
         WAITMS(500)
         LCLICK($_xmouse, $_ymouse)
 
 
         FOR($a=0,$a<$_N2)
            MOVER(0,-1)
         END_CYC
 
         WAIT(1)
         LCLICK($_xmouse, $_ymouse)
         WAIT(1)
      sell()
END_IF
 
     
 
     
 
   END_IF
 
С этим кодов все норм, но я сам себя перебиваю.И после 1,2 я поставил пару строчек , может их заменить как более продуктивно?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: помогите пожалуйста
« Reply #13 on: August 23, 2018, 08:54:39 PM »
Code: (clickermann) [Select]
//......

start: //метка start:
buy()    //код будет крутитьтся в этом месте
sell()
goto(start) //возврат к метке start:
//далее код не будет рабтать

//......
Чем тебе не понравился код который я тебе написал выше? Может подскажу что поправить.


panelka2

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: помогите пожалуйста
« Reply #14 on: August 23, 2018, 08:56:16 PM »
Если что вот этим кодом я хотел разок запустить покупку ,чтобы потом проходили проверки.
       
Code: [Select]

 start:
         buy()
 
goto(start)