Author Topic: IF_PICTURE_IN  (Read 3240 times)

0 Members and 1 Guest are viewing this topic.

vaseadida

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
IF_PICTURE_IN
« on: August 08, 2017, 11:37:57 AM »
Никак не могу понять в чем проблема, эта "программа" была написана для простой вещи, и вроде все должно работать, ей дают область она ее читает, у нее есть 7 картинок, если в этой области имеются эти картинки значит делать одно, если нет то другое..она просто не видит последнюю картинку, всегда ее пропускает, как только меняю название последней картинки на 1 а первой даю название последней (7) то уже ту что была последней видит и находит а эту что была первой а стала последней уже нет (понимаю что звучит ппц тупо)

Помогите, аа..
это уже 100500 вариант кода :((((

[spoiler]
Code: (clickermann) [Select]
LCLICK(1051,192)
WAITMS(RND(800,1800))
LCLICK(530,471)                //жмет на "Игра в Дуэль"
WAITMS(RND(1500,3000))
LCLICK(581,421)                //Начинает игру за 50
WAIT(RND(1,3))


$time = $_time_t + 5
WHILE($time > $_time_t)
   GETSCREEN(500,300,615,355)  //вычитывает данные определенного участка
   
       FOR($n=1,$n<8)
         IF_PICTURE_IN (500,300,615,355,  STRCONCAT("100-300_000" $n, ".bmp") , -1, 95)
       
   
       LCLICK(620,359 )         //ессли да, делает ход и берет еще 1 карту
   
      WAIT(RND(1,3))
LCLICK(646,505)           //возврат на стол
WAIT(RND(1,3))       
LCLICK (611,390)          //передает ход противнику
WAITMS(RND(200,800))
       
  ELSE
       WAITMS(RND(200,800))
        LCLICK(609,392)         //если нет, передает ход противнику

   
         END_IF                 //окончание функции "если"
         
         WAIT(RND(2,3))
         LCLICK(803,355)         //заканчивает игру
         WAIT(RND(2,3))

« Last Edit: August 08, 2017, 11:42:58 AM by vaseadida »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: IF_PICTURE_IN
« Reply #1 on: August 08, 2017, 01:40:25 PM »
Без окон, без дверей... Где окончания у циклов FOR и WHILE?

Об остальном пока говорить бессмысленно, потому что код выполняется в неправильном порядке.
Уточню только, что на всё про всё даётся 5 секунд, кстати, зачем?
« Last Edit: August 08, 2017, 05:07:02 PM by Vint »


vaseadida

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: IF_PICTURE_IN
« Reply #2 on: August 08, 2017, 02:52:08 PM »
в этой области я НУБ большой, только начал учится...поможете исправить?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: IF_PICTURE_IN
« Reply #3 on: August 08, 2017, 03:07:18 PM »
Зависит от логики. Что за чем должно искать и когда прерывать/продолжать. Словесное описание что делаем.
Весь это скрипт или будет продолжение и т.д.


vaseadida

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: IF_PICTURE_IN
« Reply #4 on: August 08, 2017, 04:20:40 PM »
это весь скрипт
Есть игра "очко" ну или 21, игра выдает карту, скрипт должен увидеть какая там карта (7 карт может быть меньше 4-5-6-7-8-9-19)
если там одна из этих карт (скрины я сохранил) то делать те действия, нажать в одно место потом другое, если другие соответственно идти дальше


зачем время 5 сек, не знаю..увидел где-то)) говорили что это хорошо-я добаавил

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: IF_PICTURE_IN
« Reply #5 on: August 08, 2017, 05:11:26 PM »
Code: (clickermann) [Select]
       WAITMS(RND(200,800))
       LCLICK(609,392)         //если нет, передает ход противнику
Если нет чего? По идее нет ни одной из 7 карт.
А написано, если нет той карты которую ищем, и так 7 раз.

И когда должно выполняться "//заканчивает игру"? После чего?


vaseadida

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: IF_PICTURE_IN
« Reply #6 on: August 08, 2017, 05:36:15 PM »
Если нет ни одной из тех карт то жмем "Открыть карты", и так нужно делать циклом 100500 раз

vaseadida

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: IF_PICTURE_IN
« Reply #7 on: August 09, 2017, 02:32:57 AM »
Хотя, там как бы цифры написаны, т-е там есть текст (его можно выделить-он не нарисован)
может есть функция которая ищет не картинку а цифру в определенной области? так думаю шанс ошибки упадет к 0 или как?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: IF_PICTURE_IN
« Reply #8 on: August 09, 2017, 09:46:43 AM »
Я без понятия что там и в каком порядке должно быть. Из описания это непонятно.
Рискну один раз угадать
Code: (clickermann) [Select]
// начинаем игру игры
LCLICK(1051, 192)
WAITMS(RND(800, 1800))
LCLICK(530 ,471)                //жмет на "Игра в Дуэль"
WAITMS(RND(1500, 3000))
LCLICK(581, 421)                //Начинает игру за 50
WAIT(RND(1, 3))

// ищем одну из 7 картинок
GETSCREEN(500,300,615,355)
FOR($n=1, $n < 8)
    IF_PICTURE_IN (500,300,615,355,  STRCONCAT("100-300_000" $n, ".bmp") , -1, 95)
        // нашли любую из 7, делаем действия
        LCLICK(620, 359 )         //ессли да, делает ход и берет еще 1 карту
        WAIT(RND(1, 3))
        LCLICK(646, 505)           //возврат на стол
        WAIT(RND(1, 3))
        LCLICK (611, 390)          //передает ход противнику
        WAITMS(RND(200, 800))
        $n = 100 // прерываем поиск и остальные не ищем
    END_IF
END_CYC


IF($n < 100)  // если ни одной не нашли, передает ход противнику
    WAITMS(RND(200, 800))
    LCLICK(609, 392)
END_IF

// в любом случае конец игры
WAIT(RND(2, 3))
LCLICK(803, 355)         //заканчивает игру
WAIT(RND(2, 3))

// всё пошло с начала

Если не угадал... пока не будет чётного описания, новые версии писать бессмысленно.

Вот что это значит?
Если нет ни одной из тех карт то жмем "Открыть карты", и так нужно делать циклом 100500 раз
Что 100500 раз повторять? "Открыть карты" или поиск 7 карт? Или весь скрипт с началом и завершением?

скрипт должен увидеть какая там карта (7 карт может быть меньше 4-5-6-7-8-9-19)
Меньше чего? Как 7 карт могут быть меньше чего-то? 7 карт это последовательность, при сравнении последовательностей выбираются критерии по какому правилу сравниваем. Или это совсем не о том?

В общем, соберись и напиши чёткое описание что должно идти за чем.