Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Переходим на луа, Переписываю код с пилота на луа
handness
сообщение 18.10.2021, 2:26
Сообщение #1


**

Neophyte
Сообщений: 27
Регистрация: 25.7.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.026
Возраст: 28



Нужна помощь как это переписать на lua? Ровно 1 в 1 но на lua
На языке пилота работает правильно, всё делает как надо, но ужасно медленно..........

Работает оно так:
1. заносим данные для сравнения в массив, 5 колонок, 56 строк (5*56 = 280 значений)
2. ищем определенный цвет на картинке
3. получаем цвет в координатах 280 точек относительно цвета найденного в п2 и добавляем их в массив
4. сравниваем 2 массива, если они одинаковые делаем клик если разные добавляем 35 по оси Х и повторяем цикл



Код

set %enka [1, 1] 1118480
set %enka [2, 1] 1118480
set %enka [3, 1] 1118480
set %enka [4, 1] 1118480
set %enka [5, 1] 3280430
set %enka [6, 1] 15335638
set %enka [7, 1] 3149612
set %enka [8, 1] 15335638
set %enka [9, 1] 2035740
set %enka [10, 1] 1118480
set %enka [11, 1] 1118480
set %enka [12, 1] 11601058
set %enka [13, 1] 7801197
set %enka [14, 1] 1118480
set %enka [15, 1] 7277157
set %enka [16, 1] 14025412
set %enka [17, 1] 11404704
set %enka [18, 1] 13894338
set %enka [19, 1] 10290832
set %enka [20, 1] 3149612
set %enka [21, 1] 15335638
set %enka [22, 1] 11273629
set %enka [23, 1] 14090693
set %enka [24, 1] 14483914
set %enka [25, 1] 13239224
set %enka [26, 1] 2166815
set %enka [27, 1] 3149612
set %enka [28, 1] 15335638
set %enka [29, 1] 14746061
set %enka [30, 1] 14746061
set %enka [31, 1] 14746061
set %enka [32, 1] 3149612
set %enka [33, 1] 15335638
set %enka [34, 1] 1773593
set %enka [35, 1] 1118480
set %enka [36, 1] 2428707
set %enka [37, 1] 14418378
set %enka [38, 1] 7801197
set %enka [39, 1] 1118480
set %enka [40, 1] 9176961
set %enka [41, 1] 14549451
set %enka [42, 1] 13435580
set %enka [43, 1] 13697727
set %enka [44, 1] 15335638
set %enka [45, 1] 1118480
set %enka [46, 1] 1118480
set %enka [47, 1] 1118480
set %enka [48, 1] 1118480
set %enka [49, 1] 1118480
set %enka [50, 1] 1118480
set %enka [51, 1] 1118480
set %enka [52, 1] 1118480
set %enka [53, 1] 12518318
set %enka [54, 1] 4656450
set %enka [55, 1] 1118480
set %enka [56, 1] 1118480

set %enka [1, 2] 5573710
set %enka [2, 2] 10028684
set %enka [3, 2] 10028684
set %enka [4, 2] 10028684
set %enka [5, 2] 10028684
set %enka [6, 2] 15270101
set %enka [7, 2] 3149612
set %enka [8, 2] 15335638
set %enka [9, 2] 2035740
set %enka [10, 2] 1118480
set %enka [11, 2] 1118480
set %enka [12, 2] 11601058
set %enka [13, 2] 7801197
set %enka [14, 2] 3935799
set %enka [15, 2] 14025412
set %enka [16, 2] 2494243
set %enka [17, 2] 1118480
set %enka [18, 2] 1773593
set %enka [19, 2] 13959875
set %enka [20, 2] 3149612
set %enka [21, 2] 15335638
set %enka [22, 2] 6425434
set %enka [23, 2] 1184017
set %enka [24, 2] 1708056
set %enka [25, 2] 12977077
set %enka [26, 2] 8521847
set %enka [27, 2] 3149612
set %enka [28, 2] 15335638
set %enka [29, 2] 2035740
set %enka [30, 2] 1118480
set %enka [31, 2] 1118480
set %enka [32, 2] 3149612
set %enka [33, 2] 15335638
set %enka [34, 2] 1773593
set %enka [35, 2] 1118480
set %enka [36, 2] 10684053
set %enka [37, 2] 15007953
set %enka [38, 2] 7801197
set %enka [39, 2] 4001336
set %enka [40, 2] 15139027
set %enka [41, 2] 2756391
set %enka [42, 2] 1118480
set %enka [43, 2] 3804725
set %enka [44, 2] 15335638
set %enka [45, 2] 1118480
set %enka [46, 2] 1118480
set %enka [47, 2] 1118480
set %enka [48, 2] 1118480
set %enka [49, 2] 1118480
set %enka [50, 2] 1118480
set %enka [51, 2] 1118480
set %enka [52, 2] 1118480
set %enka [53, 2] 12518318
set %enka [54, 2] 4656450
set %enka [55, 2] 1118480
set %enka [56, 2] 1118480

set %enka [1, 3] 4590912
set %enka [2, 3] 8063344
set %enka [3, 3] 8063344
set %enka [4, 3] 8063344
set %enka [5, 3] 8063344
set %enka [6, 3] 14746061
set %enka [7, 3] 3149612
set %enka [8, 3] 15335638
set %enka [9, 3] 4918341
set %enka [10, 3] 4263227
set %enka [11, 3] 4263227
set %enka [12, 3] 12387501
set %enka [13, 3] 7801197
set %enka [14, 3] 8521847
set %enka [15, 3] 11994279
set %enka [16, 3] 5770065
set %enka [17, 3] 5770065
set %enka [18, 3] 5770065
set %enka [19, 3] 12387501
set %enka [20, 3] 3149612
set %enka [21, 3] 15335638
set %enka [22, 3] 2035740
set %enka [23, 3] 1118480
set %enka [24, 3] 1118480
set %enka [25, 3] 8325236
set %enka [26, 3] 11797669
set %enka [27, 3] 3149612
set %enka [28, 3] 15335638
set %enka [29, 3] 2035740
set %enka [30, 3] 1118480
set %enka [31, 3] 1118480
set %enka [32, 3] 3149612
set %enka [33, 3] 15335638
set %enka [34, 3] 1773593
set %enka [35, 3] 5377099
set %enka [36, 3] 12190891
set %enka [37, 3] 11470240
set %enka [38, 3] 7801197
set %enka [39, 3] 3870262
set %enka [40, 3] 15139027
set %enka [41, 3] 2232352
set %enka [42, 3] 1118480
set %enka [43, 3] 3804725
set %enka [44, 3] 15335638
set %enka [45, 3] 1118480
set %enka [46, 3] 1118480
set %enka [47, 3] 1118480
set %enka [48, 3] 1118480
set %enka [49, 3] 1118480
set %enka [50, 3] 10290831
set %enka [51, 3] 10290831
set %enka [52, 3] 10290831
set %enka [53, 3] 14352840
set %enka [54, 3] 11535777
set %enka [55, 3] 10290831
set %enka [56, 3] 10290831

set %enka [1, 4] 1118480
set %enka [2, 4] 1118480
set %enka [3, 4] 1118480
set %enka [4, 4] 1118480
set %enka [5, 4] 1511701
set %enka [6, 4] 15073490
set %enka [7, 4] 3149612
set %enka [8, 4] 15335638
set %enka [9, 4] 12911540
set %enka [10, 4] 12714929
set %enka [11, 4] 12714929
set %enka [12, 4] 14680525
set %enka [13, 4] 7801197
set %enka [14, 4] 9766792
set %enka [15, 4] 12977077
set %enka [16, 4] 9373571
set %enka [17, 4] 9373571
set %enka [18, 4] 9373571
set %enka [19, 4] 9373571
set %enka [20, 4] 3149612
set %enka [21, 4] 15335638
set %enka [22, 4] 2035740
set %enka [23, 4] 1118480
set %enka [24, 4] 1118480
set %enka [25, 4] 7277158
set %enka [26, 4] 12387501
set %enka [27, 4] 3149612
set %enka [28, 4] 15335638
set %enka [29, 4] 2035740
set %enka [30, 4] 1118480
set %enka [31, 4] 1118480
set %enka [32, 4] 3149612
set %enka [33, 4] 15335638
set %enka [34, 4] 2428707
set %enka [35, 4] 13435580
set %enka [36, 4] 3542578
set %enka [37, 4] 11404703
set %enka [38, 4] 7801197
set %enka [39, 4] 1118480
set %enka [40, 4] 9570182
set %enka [41, 4] 14025412
set %enka [42, 4] 11928743
set %enka [43, 4] 12518318
set %enka [44, 4] 15335638
set %enka [45, 4] 1118480
set %enka [46, 4] 1118480
set %enka [47, 4] 1118480
set %enka [48, 4] 1118480
set %enka [49, 4] 1118480
set %enka [50, 4] 6490971
set %enka [51, 4] 6490971
set %enka [52, 4] 6490971
set %enka [53, 4] 13566653
set %enka [54, 4] 8718458
set %enka [55, 4] 6490971
set %enka [56, 4] 6490971

set %enka [1, 5] 1118480
set %enka [2, 5] 1118480
set %enka [3, 5] 1118480
set %enka [4, 5] 1118480
set %enka [5, 5] 6359897
set %enka [6, 5] 14418377
set %enka [7, 5] 3149612
set %enka [8, 5] 15335638
set %enka [9, 5] 2035740
set %enka [10, 5] 1118480
set %enka [11, 5] 1118480
set %enka [12, 5] 11601058
set %enka [13, 5] 7801197
set %enka [14, 5] 8456310
set %enka [15, 5] 11404703
set %enka [16, 5] 1118480
set %enka [17, 5] 1118480
set %enka [18, 5] 1118480
set %enka [19, 5] 1118480
set %enka [20, 5] 3149612
set %enka [21, 5] 15335638
set %enka [22, 5] 2035740
set %enka [23, 5] 1118480
set %enka [24, 5] 1118480
set %enka [25, 5] 9111423
set %enka [26, 5] 10684053
set %enka [27, 5] 3149612
set %enka [28, 5] 15335638
set %enka [29, 5] 2035740
set %enka [30, 5] 1118480
set %enka [31, 5] 1118480
set %enka [32, 5] 3149612
set %enka [33, 5] 15335638
set %enka [34, 5] 9897611
set %enka [35, 5] 8521847
set %enka [36, 5] 1118480
set %enka [37, 5] 11404703
set %enka [38, 5] 7801197
set %enka [39, 5] 1118480
set %enka [40, 5] 1970204
set %enka [41, 5] 13501116
set %enka [42, 5] 7539049
set %enka [43, 5] 5966676
set %enka [44, 5] 15335638
set %enka [45, 5] 1118480
set %enka [46, 5] 1118480
set %enka [47, 5] 1118480
set %enka [48, 5] 1118480
set %enka [49, 5] 1118480
set %enka [50, 5] 1118480
set %enka [51, 5] 1118480
set %enka [52, 5] 1118480
set %enka [53, 5] 12518318
set %enka [54, 5] 4656450
set %enka [55, 5] 1118480
set %enka [56, 5] 1118480

set #osiks 673
    kright 676, 10
    kleft 700, 10

while_not #osiks > 955
        kleft 688, 11
        wait 250
        kleft 741, 33
        wait 250
        double_kleft #osiks, 425
        wait 250
        kleft 588, 465
        wait 1500
        double_kleft 337, 411
        set #osiks #osiks + 35
    end_while
    kleft 637, 12 // закрываем окно чарования
    wait 250
    double_kleft 430, 283
    wait 350
    kleft 651, 191
    wait 350
    kleft 695, 216
    wait 500
    set #osiks 673


while_not #osiks > 955


    move #osiks, 425
    wait 500
    set #osiks #osiks + 10
    kleft #osiks, 425
    wait 500
    set #osiks #osiks - 18
    move #osiks, 425
    wait 500
    set #osiks #osiks + 8
    wait 500

    log clear
    set #d findcolor (1, 1 1300, 768 1 1 (128501) %jeeeel 2)
    if  #d > 0
        alarm

        //move %stat1 [1 1], %stat1 [1 2]
        //log %stat1 [1 1]
        //log %stat1 [1 2]

        set #jelx %jeeeel [1 1]
        set #jely %jeeeel [1 2]
        set #jely #jely + 20  //стат 1 по оси Y


        for #j 1 5 1
            for #i 1 56 1
                get color #value #jelx, #jely
                set #jelx #jelx + 1
                //move #jelx, #jely
                set %stat1 [#i #j] #value
                //log #value    //включить ЭТО когда надо будет записать стат
            end_for
            log
            set #jelx %jeeeel [1 1]
            set #jely #jely + 1
        end_for
        log #i
        set #size size(%stat1)
        log #size
        log
        log


        set #sovpadenie 0
        for #j 1 5 1 //#j 1 5 1
            for #i 1 56 1
                if  %stat1 [#i #j] == %enka [#i #j]
                    set #sovpadenie #sovpadenie + 1
                end_if
            end_for
        end_for

        if  #sovpadenie == 280
            log clear
            log совпало ядрен патефон
            double_kleft #osiks, 425
        else
            log clear
            log не совпало и в целом ничего хорошего
            set #osiks #osiks + 35
        end_if

    else
        msg Цвет не найден!
    end_if

end_while
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 18.10.2021, 11:41
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Тут надо смотреть что именно медленно выполняется, в скрипте только пауз примерно на 5 секунд. К тому же есть циклы, а они сколько выполняются ожидая нужного значения?.
В данном скрипте нет каких-то больших вычислений, так что переписывание на луа скорее всего мало что даст.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
handness
сообщение 18.10.2021, 19:09
Сообщение #3


**

Neophyte
Сообщений: 27
Регистрация: 25.7.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.026
Возраст: 28



Цитата(cirus @ 18.10.2021, 11:41) *

Тут надо смотреть что именно медленно выполняется


Код
for #j 1 5 1
    for #i 1 56 1
        get color #value #jelx, #jely
        set #jelx #jelx + 1
        //move #jelx, #jely
        set %stat1 [#i #j] #value
        //log #value    //включить ЭТО когда надо будет записать стат
    end_for
    log
    set #jelx %jeeeel [1 1]
    set #jely #jely + 1
end_for
log #i
set #size size(%stat1)
log #size
log
log


set #sovpadenie 0
for #j 1 5 1 //#j 1 5 1
    for #i 1 56 1
        if  %stat1 [#i #j] == %enka [#i #j]
            set #sovpadenie #sovpadenie + 1
        end_if
    end_for
end_for


Вот эта часть кода занимает 90-95% времени и выполняется за 20-25 секунд при ожидании 1 ну максимум 2 секунды.

Эти циклы сначала добавляют цвета пикселей в массив, затем сравнивают свежесобранный массив с объявленным в начале скрипта.

p.s. Про замену столбцов и строк увидел, попробую, возможно действительно проблема в этом.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
handness
сообщение 18.10.2021, 20:23
Сообщение #4


**

Neophyte
Сообщений: 27
Регистрация: 25.7.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.026
Возраст: 28



Цитата(handness @ 18.10.2021, 19:09) *

возможно действительно проблема в этом.


Не в этом. Поменял 56 строк и 5 столбцов на 5 строк и 56 столбцов. Визуально результата не увидел
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
handness
сообщение 19.10.2021, 1:39
Сообщение #5


**

Neophyte
Сообщений: 27
Регистрация: 25.7.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.026
Возраст: 28



Переписал полностью на луа, всё работает (сама проверка и определение цветов за долю секунды вместо полминуты), благодарю всех за помощь и советы, прошу закрыть тему.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 18:06
Designed by Nickostyle