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

52 страниц V « < 28 29 30 31 32 > »   
Ответить в эту темуОткрыть новую тему
> Упростить скрипт
veiron
сообщение 21.8.2013, 14:00
Сообщение #581


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 13:59) *

Тут я ляпнул малость. Это будут два значения. Это не цвета.
Кстати, а что у нас хранится в %thridImage?

Координаты найденного 3 изображения.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:03
Сообщение #582


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



Цитата
Так ?

Цитата
$hzv %thridImage[#с 1] %thridImage[#с 2]

Цитата
$hzv

Цитата
Ну не лепят в числовые переменные/ифы/форы и т.д. две переменные.
if #a #b = #c #d
нет таких записей, нет таких присвоений. ВСЕ поотдельности.

Забудь про такие конструкции. Они еще в какой-то мере применимы при работе с текстом. Причем именно через предварительное присвоение переменной всей сборной строки, как сделано в этом варианте. Но это никак не допустимо при сравнении чисел и совсем мимо наших задач.

Цитата
Координаты найденного 3 изображения.

Ну так и что получается? Ты сравниваешь:
if цвет_начального_изображения = координатаX координатаY


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:08
Сообщение #583


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:02) *

Забудь про такие конструкции. Они еще в какой-то мере применимы при работе с текстом. Причем именно через предварительное присвоение переменной всей сборной строки, как сделано в этом варианте. Но это никак не допустимо при сравнении чисел и совсем мимо наших задач.

то есть числа можно сравнивать только с одной переменной, а второе должно быть число?

Цитата(DarkMaster @ 21.8.2013, 14:03) *

Ну так и что получается? Ты сравниваешь:
if цвет_начального_изображения = координатаX координатаY

Получается да)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:11
Сообщение #584


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



число/переменная/массив не имеет значения. Но можно сравнивать только пару данных. Т.е.
1 = 2
1 = #adf
#asd = #qwe
#qwe = %arr [ 1 1 ]
%arr [ 1 1 ] = %arr [ 23 32 ]
%arr [ 1 1 ] = %qwe [ 1 1 ]
%arr [ 1 1 ] = 123
%arr [ 1 1 ] = #fas

Только:
данные1 знак_сравнения данные2

Если надо сравнить больше данных, то ставишь and/or/xor в зависимости от задачи и пишешь дальше, но опять только "данные1 знак_сравнения данные2"
данные1 знак_сравнения данные2 AND данные3 знак_сравнения данные4
и никак иначе

Цитата
Получается да)

Думаю ты понимаешь, что это бред)
Координаты чего содержатся в массиве %thridImage?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:15
Сообщение #585


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:11) *

Думаю ты понимаешь, что это бред)
Координаты чего содержатся в массиве %thridImage?

Шара котрой ищем. Номер ячейки.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:17
Сообщение #586


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



где у нас все цвета разложены согласно номерам ячеек?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:18
Сообщение #587


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:17) *

где у нас все цвета разложены согласно номерам ячеек?

в %field [#xField #yField]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:19
Сообщение #588


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



и как же нам узнать какой цвет в массиве с цветами, если мы знаем номер ячейки в массиве? Опять про малевича пошли...


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:21
Сообщение #589


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:19) *

и как же нам узнать какой цвет в массиве с цветами, если мы знаем номер ячейки в массиве? Опять про малевича пошли...

как то надо замутить так:
%field [%thridImage[#с 1] %thridImage[#с 2]]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:22
Сообщение #590


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



ага


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:23
Сообщение #591


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:22) *

ага

и что будет работать? (IMG:style_emoticons/default/blink.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:24
Сообщение #592


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



ну да... А чего ему не работать то? Это такая же переменная.

И все в кучу собираем.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:29
Сообщение #593


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:23) *

ну да... А чего ему не работать то? Это такая же переменная.

так это я тут с форума где то такую конструкцию дернул. думал опять скажите не пойдет)

Скрипт

Код
// Координата левого верхнего изображения.
// С точностью до пикселя.
set #startOffsetX 260
set #startOffsetY 146
// Шаг сетки изображений.
// С точностью до пикселя.
set #cellOffsetX 41
set #cellOffsetY 41
// Изображения шариков
set %image [ 1 ] 458231        
set %image [ 2 ] 106948    
set %image [ 3 ] 151005    
set %image [ 4 ] 468460  
set %image [ 5 ] 545904    
set #countImage size (%image)

for #i 1 #countImage
   set $a findcolor ( 260 146 465 351 41 41 (%image[ #i ]) %arr  2 )
    for #n 1 $a 1
        set #fieldX ( %arr [ #n 1 ] - #startOffsetX ) / #cellOffsetX + 1
        set #fieldY ( %arr [ #n 2 ] - #startOffsetY ) / #cellOffsetY + 1
        set %field [ #fieldY #fieldX ] #i
    end_for
end_for
///////////////////////////////////
for #xField 1 6 1 // Я хз какого размера у тебя поле. Предположим 10 на 10.
    for #yField 1 6 1
        if #xField < 2
           set #xStart 1
        else
           set #xStart #xField - 1
        end_if
        if #xField > 5
           set #xEnd 6
        else
           set #xEnd #xField + 1
        end_if
        if #yField < 2
           set #yStart 1
        else
           set #yStart #yField - 1
        end_if
        if #yField > 5
           set #yEnd 6
        else
           set #yEnd #yField + 1
        end_if
        for #x #xStart #xEnd 1
            for #y #yStart #yEnd 1
                if %field [ #x #y ] = %field [ #xField #yField ] and ( #x != #xField or #y != #yField )
                                   gosub 3shar
                   set #n #n + 1
                end_if
            end_for
        end_for
    end_for
end_for
log timer  #n
end_script

:3shar
                    set #f 0
                    if #x1 < 6 and #y1 != 1
                        set #f #f + 1
                        Set %thridImage[#f 1] #x1 + 1
                        Set %thridImage[#f 2] #y1 - 1
                    end_if
                    if #x1 < 5
                        set #f #f + 1
                        Set %thridImage[#f 1] #x1 + 2
                        Set %thridImage[#f 2] #y1
                    end_if
                    if #y1 < 5
                        set #f #f + 1
                        Set %thridImage[#f 1] #x1
                        Set %thridImage[#f 2] #y1 + 2
                    end_if
                    if #x1 != 1 and #y1 < 6
                        set #f #f + 1
                        Set %thridImage[#f 1] #x1 - 1
                        Set %thridImage[#f 2] #y1 + 1
                        end_if
                    for #с 1 #f 1
                         log %field [%thridImage[#с 1] %thridImage[#с 2]]
                    end_for
return


Собрал
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:29
Сообщение #594


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



так. поскольку это у нас только 1 из 4 подскриптов поиска третьего изображения, то чтобы не раздувать тело основного скрипта, давай вынесем этот кусок в подпрограмму. Лезем в справку, читаем про gosub(если конечно еще не связывался), подсовываем данный скрипт в основной в качестве подпрограммы. Т.е. тело скрипта поиска третьего изображения НЕ должно быть внутри форов основного скрипта.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:33
Сообщение #595


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:29) *

так. поскольку это у нас только 1 из 4 подскриптов поиска третьего изображения, то чтобы не раздувать тело основного скрипта, давай вынесем этот кусок в подпрограмму. Лезем в справку, читаем про gosub(если конечно еще не связывался), подсовываем данный скрипт в основной в качестве подпрограммы. Т.е. тело скрипта поиска третьего изображения НЕ должно быть внутри форов основного скрипта.

Сталкивался. Отредактировал скрипт.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:36
Сообщение #596


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



Ну в принципе все по этой части скрипта. Пиши остальные 3. Там разница будет только в координатах.
А я пока что вспомню, что я там понапридумывал с различием пар.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:39
Сообщение #597


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:36) *

Ну в принципе все по этой части скрипта. Пиши остальные 3. Там разница будет только в координатах.
А я пока что вспомню, что я там понапридумывал с различием пар.

так в этом не понять где он ищет, как я еще 3 таких напишу?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:40
Сообщение #598


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



В смысле? Ты не понял, как мы искали?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 21.8.2013, 14:44
Сообщение #599


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 21.8.2013, 14:40) *

В смысле? Ты не понял, как мы искали?

я не могу понять от какого шара мы ищем от 1 или 2, от горизонтального или диагонального?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.8.2013, 14:55
Сообщение #600


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29680
Пользователь №: 11.279



Код
    set #xDelta #xField - #x
    set #yDelta #yField - #y
    set #vector 2 * (#xDelta) * (#yDelta) + 2 + ( abs(#xDelta))
// 8 индивидуальных
// set #vector  (#xDelta) * (#yDelta) + 5 * (#xDelta) * (#yDelta) + #xDelta + #yDelta * 2 + 8

Вставить перед gosub. Gosub делать на #vector. Закомментированное не вставлять.
Названия подпрограмм будут:
Код
gosub 5          || -1 -1
gosub 5          || 1 1
gosub 1          || -1 1
gosub 1          || 1 -1
gosub 2          || 0 -1
gosub 2          || 0 1
gosub 3          || -1 0
gosub 3          || 1 0

Справа указаны относительные координаты второго шара от первого.
Скрипт тестирования дифференцирования пар
Код
set linedelay 0
log mode compact
log clear
// 1
//
// 10
// 02
set %arr [ 1 1 ] 3
set %arr [ 1 2 ] 4
set %arr [ 1 3 ] 4
set %arr [ 1 4 ] 5
// 2
//
// 20
// 01
set %arr [ 2 1 ] 4
set %arr [ 2 2 ] 5
set %arr [ 2 3 ] 3
set %arr [ 2 4 ] 4
// 3
//
// 01
// 20
set %arr [ 3 1 ] 3
set %arr [ 3 2 ] 4
set %arr [ 3 3 ] 4
set %arr [ 3 4 ] 3
// 4
//
// 02
// 10
set %arr [ 4 1 ] 4
set %arr [ 4 2 ] 3
set %arr [ 4 3 ] 3
set %arr [ 4 4 ] 4
// 5
//
// 12
// 00
set %arr [ 5 1 ] 3
set %arr [ 5 2 ] 4
set %arr [ 5 3 ] 3
set %arr [ 5 4 ] 5
// 6
//
// 21
// 00
set %arr [ 6 1 ] 3
set %arr [ 6 2 ] 5
set %arr [ 6 3 ] 3
set %arr [ 6 4 ] 4
// 7
//
// 10
// 20
set %arr [ 7 1 ] 3
set %arr [ 7 2 ] 5
set %arr [ 7 3 ] 4
set %arr [ 7 4 ] 5
// 8
//
// 20
// 10
set %arr [ 8 1 ] 4
set %arr [ 8 2 ] 5
set %arr [ 8 3 ] 3
set %arr [ 8 4 ] 5

for #i 1 8 1
    set #xDelta %arr [ #i 1 ] -  %arr [ #i 3 ]
    set #yDelta %arr [ #i 2 ] -  %arr [ #i 4 ]
    set #vector 2 * (#xDelta) * (#yDelta) + 2 + ( abs(#xDelta))
// 8 индивидуальных
// set #vector  (#xDelta) * (#yDelta) + 5 * (#xDelta) * (#yDelta) + #xDelta + #yDelta * 2 + 8
    log gosub #vector          || #xDelta #yDelta
end_for
log timer
stop_script

Цитата
%field [#xField #yField]

Цитата
%field [%thridImage[#с 1] %thridImage[#с 2]]

А иф то где с ними?

Цитата
я не могу понять от какого шара мы ищем от 1 или 2, от горизонтального или диагонального?

Ты сам выбрал пару:
10
02

Поиск надо делать от ВЕРХНЕГО шара, если они горизонтально, то от левого.

Ты фактически сделал gosub 5

Сообщение отредактировал DarkMaster - 21.8.2013, 14:53


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

52 страниц V « < 28 29 30 31 32 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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