Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Mihail on December 19, 2018, 02:55:01 AM

Title: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 02:55:01 AM
Здравствуйте.Кто знает как сделать так чтоб происходил клик если одной из четырёх картинок небыло 10 раз.картинка в заданой области все время смещаеться с лево на право и когда доходит до правого края то спускаеться на ряд ниже и так дальше.каждый раз смещаясь на одну картинку в право предыдущея остаеться.всего в ряду 50 картинок,а рядов всего 20.
И так пока незаполняться все ряды.потом все сначала
Title: Re: Действие если картинки небыло 10 раз
Post by: Vint on December 19, 2018, 10:25:01 AM
Не думаю что по данному описанию можно сделать что-нибудь толковое. Ничего не понятно. В описании не хватает важной связующей информации.

Картинка в заданной области все время смещается слева направо и когда доходит до правого края то спускается на ряд ниже и так дальше. Всего в ряду 50 картинок, а рядов всего 20.
Это понятно

Каждый раз смещаясь на одну картинку в право предыдущая остается.
Если эта часть верна, то получаем всегда одну и ту же картинку множащуюся до 1000 шт. Пока смысла не видно.

Как сделать так чтоб происходил клик если одной из четырёх картинок не было 10 раз.
Всё стало сложнее. Откуда взялись 4 картинки? Понятно, что это 4 варианта, но где и что непонятно.
Где не было 10 раз? Когда все ряды заполнятся? В ряду? Или если другие варианты перевалили за 10? Вариантов уйма. Не ясно когда проверять.
Ведь в начале раунда, любого варианта меньше 10... постоянно кликать?


Пока писал, пришла Ванга и голосом Кашпировского обрисовала мне своё видение картины:
Всё описание вывернуть на изнанку.
Нужно кликать. Кликаем.
При каждом клике добавляется новая картинка (в начало, со сдвигом существующих, или в конец).
Клики останавливаем если из всех 4 вариантов картинки каждая появилась не меньше 10 раз.
Как появилось перестаём кликать и... (что?)
Но это не точно  ;D.
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 12:17:00 PM
Постараюсь изьяснитт правильно.
Есть 20 рядов в каждом ряду 50 квадратов в которых появляеться
одна из четырёх картинок.ето как листок в клетку.каждую минуту добавляеться одна из четырёх картинок.и так заполняються все ряды.с лева на право,когда ряд закончился то картинки начинают добавляться с нового ряда.всего получается 1000 картинок все верно.нужно чтоб скрипт сам определял какая из картинок непоявлялась 10 раз с последнего места ее появления и делал клик.надеюсь правильно изьяснил
Title: Re: Действие если картинки небыло 10 раз
Post by: Vint on December 19, 2018, 01:43:16 PM
Ну,почти угадал.

Нужно проводить проверку после появления новой карты. Есть возможность точно определить её появление?
Разбитие по рядам ничего не значит и не учитывается?
Тогда нужен скрин с размерами для подсчёта областей поиска.

Есть пока 2 пути решения
1. Просто определяем тип последней появившейся карты и ищем в области последняя-10 три оставшиеся. Если какой-то не нашли - конец.
2. Запоминаем в 4 переменных номер хода на каком появилась карта. Считаем ходы появления карт. При появлении общий счётчик ходов увеличиваем, определяем что за карта и обновляем счётчик этой карты. В результате на каждом ходе у нас есть 5 переменных общий счётчик и для каждой карты. Проверяем разницу каждой и общего, если больше 9 - конец.
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 01:53:01 PM
Можете с кодом помочь?
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 01:57:11 PM
Ето не карти а буквы их 4ре.щас покажу скрин(http://)
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 02:05:20 PM
4 картинки буква ( К П Ч Б ) для каждой буквы свой клик
тоесть если десять раз небыло буквы "К"  то клик   LCLICK(1236,388)
буква "П"  клик    LCLICK(923,539)
буква "Ч" клик     LCLICK(1236,382)
буква "Б" клик      LCLICK(1257,179)
Title: Re: Действие если картинки небыло 10 раз
Post by: Vint on December 19, 2018, 02:35:02 PM
Ето не карти а буквы их 4ре.щас покажу скрин(http://)
Это не скрин, а фото с экрана. Познавательно для общего представления, но не больше.
С кодом помочь, только при наличии скрина (не сжатого png или bmp).
Нужно с него брать цвета и размеры.

И ещё вопрос, скрипт всегда будет запускаться при пустом поле или его можно включать в любое время и он должен проанализировать конец таблицы?
Title: Re: Действие если картинки небыло 10 раз
Post by: Vint on December 19, 2018, 02:57:52 PM
А, ещё что делать если не было нескольких?
Утрированный пример

К П Ч Б Б Б Б Б Б Б Б Б Б
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 03:23:29 PM
вот так выглядит.да ето для ставок.нескольких небывает только одна из букв может непоявляться долго.и еще ето я для примера писал что двадцать рядов по 50 картинок.на самом деле нужно 10 рядов по 27 картинок в ряду
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 06:02:36 PM
Так мне надо минимум чтоб 10 раз было ето раз ,а во вторых ето я просто для примера наклацал чтоб скрин сделать.а если такое и будет то минимум десять раз две небывает
Title: Re: Действие если картинки небыло 10 раз
Post by: Vint on December 19, 2018, 06:06:35 PM
Code: (clickermann) [Select]
//первое поле (прописываем свои координаты начала)
$startx = 500
$starty = 450

// размер клетки поля
$lx = 34
$ly = 30

// клеток поля...
$kx = 27
$ky = 10

// максимальное расстояние полей для реакции
$max_step = 10

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

IF($only = 0)
    STRSEPARATE("К,П,Ч,Б", ",", $mast)
    $endx = $startx + $lx*$kx
    $endy = $starty + $ly*$ky
    LOGCLEAR
    $only = 1
END_IF

UNDEFINE($coord)
STRSEPARATE("0,0,0,0,0,0,0,0", ",", $coord)

GETSCREEN($startx,$starty, $endx, $endy)
FOR($m=0, $m < 4)
    UNDEFINE($scan)
    SCANPICTURE($scan, $startx,$starty, $endx, $endy, STRCONCAT($mast[$m], ".bmp"))
   
    $a_size = ARRSIZE($scan)
    IF($a_size > 0)
        $coord[$m*2] = $scan[$a_size - 2]
        $coord[($m*2)+1] = $scan[$a_size - 1]
    END_IF
END_CYC

//FOR($i=0, $i < ARRSIZE($coord), 2)
//    $x = $coord[$i]
//    $y = $coord[$i+1]
//    LOGWRITE("x/y  ", $x, "/", $y)
//    MOVE($x,$y)
//    WAIT(1)
//END_CYC

// ищем последнюю букву
$curr_y = 0
FOR($i=0, $i < 8, 2)
    $y = $coord[$i+1]
    IF($y > $curr_y)
        $curr_y = $y
    END_IF
END_CYC
$curr_x = 0
FOR($i=0, $i < 8, 2)
    $x = $coord[$i]
    IF(($coord[$i+1] = $curr_y) & ($x > $curr_x))
        $curr_x = $x
    END_IF
END_CYC
LOGWRITE("current  ", $curr_x, "/", $curr_y)

// считаем расстояние
$result = 100
FOR($m=0, $m < 4)
    $x = $coord[$m*2]
    $y = $coord[($m*2)+1]
    IF(($curr_y - $y) > $ly)
        LOGWRITE("Разница больше одного ряда")
        $result = $m
        $m = 100
    ELSE
        IF($curr_y > $y)
            $x = $startx - ($endx - $x)
        END_IF
        $step = INT((($curr_x - $x) / $lx) + 0.5)
        LOGWRITE("step ", $mast[$m], "  ", $step)
        IF($step > ($max_step-1))
            $result = $m
            $m = 100
        END_IF
    END_IF
END_CYC

// действие (клик)
IF($result < 100)
    LOGWRITE("масть ", $mast[$result], " не было ", $step, " шагов")
    SWITCH($result)
        CASE(0)  // К
            LCLICK(1236,388)
        CASE(1)  // П
            LCLICK(923,539)
        CASE(2)  // Ч
            LCLICK(1236,382)
        CASE(3)  // Б
            LCLICK(1257,179)
    END_SWITCH
    WAITMS(500)   
END_IF

HALT

Если будет несколько невыпадений, сработает по приоритету порядка следования "К,П,Ч,Б"
Так же будет срабатывать в самом начале, пока масти ещё не выпадали ни разу.
К примеру начало  ККБ   - сработает П (она не выпадала)
                               ККБП - сработает Ч
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 06:07:24 PM
И ето нескрипты заложенные,все дело в тосовке карт их тусуют по спецыальному методу.сначала есть закономерность игрок ведеться и ставит бах поменяли тосовку и ты слился.а если знать когда какая тосовка и играть на дистанцыях и немного то всегда в хорошем плюсе.у меня еуча прог которые вычисляют все тосовки.и стратегия рабочая.только нужно роботизировать процес ставок
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 06:10:17 PM
спасибо щас проверю
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 07:19:16 PM
Подскажите как высчитать правильно пиксели
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 08:20:02 PM
Немогу код настроить тот что мне скинули.он неправильно считает
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 19, 2018, 10:59:44 PM
он то работает но неточно пишет количество шагов
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 20, 2018, 11:05:21 AM
Спасибо.работает точно.я бы сам не долумался что в етом может быть проблема
Title: Re: Действие если картинки небыло 10 раз
Post by: Vint on December 20, 2018, 01:48:45 PM
Щет. Я забыл образцы приложить. Да, их делал ровными по высоте.
Прикрепляю...

Поправил лог, теперь корректный при разнице больше ряда
Code: (clickermann) [Select]
//первое поле (прописываем свои координаты начала)
$startx = 500
$starty = 450

// размер клетки поля
$lx = 34
$ly = 30

// клеток поля...
$kx = 27
$ky = 10

// максимальное расстояние полей для реакции
$max_step = 10

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

IF($only = 0)
    STRSEPARATE("К,П,Ч,Б", ",", $mast)
    $endx = $startx + $lx*$kx
    $endy = $starty + $ly*$ky
    LOGCLEAR
    $only = 1
END_IF

UNDEFINE($coord)
STRSEPARATE("0,0,0,0,0,0,0,0", ",", $coord)

GETSCREEN($startx,$starty, $endx, $endy)
FOR($m=0, $m < 4)
    UNDEFINE($scan)
    SCANPICTURE($scan, $startx,$starty, $endx, $endy, STRCONCAT($mast[$m], ".bmp"))
   
    $a_size = ARRSIZE($scan)
    IF($a_size > 0)
        $coord[$m*2] = $scan[$a_size - 2]
        $coord[($m*2)+1] = $scan[$a_size - 1]
    END_IF
END_CYC

//FOR($i=0, $i < ARRSIZE($coord), 2)
//    $x = $coord[$i]
//    $y = $coord[$i+1]
//    LOGWRITE("x/y  ", $x, "/", $y)
//    MOVE($x,$y)
//    WAIT(1)
//END_CYC

// ищем последнюю букву
$curr_y = 0
FOR($i=0, $i < 8, 2)
    $y = $coord[$i+1]
    IF($y > $curr_y)
        $curr_y = $y
    END_IF
END_CYC
$curr_x = 0
FOR($i=0, $i < 8, 2)
    $x = $coord[$i]
    IF(($coord[$i+1] = $curr_y) & ($x > $curr_x))
        $curr_x = $x
    END_IF
END_CYC
LOGWRITE("current  ", $curr_x, "/", $curr_y)

// считаем расстояние
$result = 100
FOR($m=0, $m < 4)
    $x = $coord[$m*2]
    $y = $coord[($m*2)+1]
    IF(($curr_y - $y) > $ly)
        //LOGWRITE("Разница больше одного ряда")
        $result = $m
        $m = 200
    ELSE
        IF($curr_y > $y)
            $x = $startx - ($endx - $x)
        END_IF
        $step = INT((($curr_x - $x) / $lx) + 0.5)
        LOGWRITE("step ", $mast[$m], "  ", $step)
        IF($step > ($max_step-1))
            $result = $m
            $m = 100
        END_IF
    END_IF
END_CYC

// действие (клик)
IF($result < 100)
    IF($m > 150)
        LOGWRITE("масть ", $mast[$result], " не было больше 27 шагов")
    ELSE
        LOGWRITE("масть ", $mast[$result], " не было ", $step, " шагов")
    END_IF   
   
    SWITCH($result)
        CASE(0)  // К
            LCLICK(1236,388)
        CASE(1)  // П
            LCLICK(923,539)
        CASE(2)  // Ч
            LCLICK(1236,382)
        CASE(3)  // Б
            LCLICK(1257,179)
    END_SWITCH
    WAITMS(500)
END_IF

HALT
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 20, 2018, 07:54:14 PM
Огромнейшее спасибо.работает супер.
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 20, 2018, 10:34:19 PM
Такой вопрос,в скрипте стоит 4 масти а если мне нужно туда поставить 8 другиг картинок и чтоб он определял так само,что нужно поменять в скрипте?
Title: Re: Действие если картинки небыло 10 раз
Post by: Vint on December 21, 2018, 09:26:49 AM
Такой вопрос,в скрипте стоит 4 масти а если мне нужно туда поставить 8 другиг картинок и чтоб он определял так само,что нужно поменять в скрипте?
Дописать сюда
Code: (clickermann) [Select]
STRSEPARATE("К,П,Ч,Б", ",", $mast)
Здесь добавить нулей чтоб было количество букв*2
Code: (clickermann) [Select]
STRSEPARATE("0,0,0,0,0,0,0,0", ",", $coord)
В двух циклах поменять число 4 (кол-во букв)
Code: (clickermann) [Select]
FOR($m=0, $m < 4)
И в двух циклах поменять 8 (кол-во букв*2)
Code: (clickermann) [Select]
FOR($i=0, $i < 8, 2)
А вообще-то об этом нужно говорить до написания, тогда будет правиться в одном месте.

К чему было два раза называть 20 рядов по 50 букв, если их 10х27 ? Зачем эти непонятные шифры?
Если их бывает разное количество, то так нужно сразу и говорить обычно столько-то, но может меняться в таких-то пределах.
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 21, 2018, 08:56:37 PM
Я ничего нестараюсь скрыть просто долго обьяснять.если вам интересно то скажу карты от 2 до 7 черного цвета ето знак минус
красного цвета знак плюс
9 10 А красные красный кружок
Черные черный кружок
Валет дама король черные черная решотка
Красные красная решотка
8 черная так и есть 8 черная
8 красная так и есть 8 красная
Title: Re: Действие если картинки небыло 10 раз
Post by: Mihail on December 21, 2018, 09:02:33 PM
ето на красное черное