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

52 страниц V « < 17 18 19 20 21 > »   
Ответить в эту темуОткрыть новую тему
> Упростить скрипт
DarkMaster
сообщение 17.8.2013, 22:15
Сообщение #361


***********

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



А в слова обратно переведи. Сразу поймешь, что не так. Не стремись к коду. Код это только способ выражения мысли. Мысль сначала построй.


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


********

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



Цитата(DarkMaster @ 17.8.2013, 22:15) *

А в слова обратно переведи. Сразу поймешь, что не так. Не стремись к коду. Код это только способ выражения мысли. Мысль сначала построй.

переменная #i увеличивается в диапозоне #sizeThridImage, на 1
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.8.2013, 22:22
Сообщение #363


***********

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



Диапазон это как минимум 2 числа для линейной(одномерной) последовательности. Для двумерной 4 и т.д.

Сообщение отредактировал DarkMaster - 17.8.2013, 22:23


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


********

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



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

Диапазон это как минимум 2 числа для линейной(одномерной) последовательности. Для двумерной 4 и т.д.

переменная #i увеличивается в диапозоне от 1 до #sizeThridImage, на 1
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.8.2013, 22:27
Сообщение #365


***********

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



А теперь фором.


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


********

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



Цитата(DarkMaster @ 17.8.2013, 22:27) *

А теперь фором.

for #i 1 #sizeThridImage 1
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.8.2013, 22:28
Сообщение #367


***********

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



и теперь все в кучу.
Расчет массива
Размер массива
Фор
вывод лога


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


********

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



Цитата(DarkMaster @ 17.8.2013, 22:28) *

и теперь все в кучу.
Расчет массива
Размер массива
Фор
вывод лога

Код
Set %thridImage[1 1] #x1 + 1
Set %thridImage[1 2] #y1 - 1
Set %thridImage[2 1] #x1 + 2
Set %thridImage[2 2] #y1
Set %thridImage[3 1] #x1
Set %thridImage[3 2] #y1 + 2
Set %thridImage[4 1] #x1 - 1
Set %thridImage[4 2] #y1 + 1
set #sizeThridImage size (%thridImage)
for #i 1 #sizeThridImage 1
log %thridImage[#i 1] %thridImage[#i 2]
end_for
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.8.2013, 22:37
Сообщение #369


***********

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



Ну вот на правду похоже (IMG:style_emoticons/default/smile.gif)
Вот тебе и расчет всех точек и перебор. Если есть желание, то можешь пообъявлять переменные x1 y1 в начале скрипта и посмотреть вывод в лог.

На сегодня все. Спать пора уже. Если есть желание, то можешь вспомнить, как мы отсекали выход за пределы массива, когда искали пару. Ведь здесь тоже можно уйти за предел массива. Далеко не всегда мы будем проверять все четыре точки.


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


********

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



Цитата(DarkMaster @ 17.8.2013, 22:37) *

Ну вот на правду похоже (IMG:style_emoticons/default/smile.gif)
Вот тебе и расчет всех точек и перебор. Если есть желание, то можешь пообъявлять переменные x1 y1 в начале скрипта и посмотреть вывод в лог.

надо этот кусок вставить в предыдущий?
Цитата
На сегодня все. Спать пора уже. Если есть желание, то можешь вспомнить, как мы отсекали выход за пределы массива, когда искали пару. Ведь здесь тоже можно уйти за предел массива. Далеко не всегда мы будем проверять все четыре точки.

Спасибо, завтра попробую.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.8.2013, 22:40
Сообщение #371


***********

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



Цитата
for #i 1 4 1 #sizeThridImage

Это че? Ща в глаз дам. Ты же исправлял это.


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


********

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



Цитата(DarkMaster @ 17.8.2013, 22:40) *

Это че? Ща в глаз дам. Ты же исправлял это.

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


***********

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



Цитата
надо этот кусок вставить в предыдущий?

Рано. Надо будет выходы за пределы массива сначала описать, подставить правильные входные переменные их основного скрипта. И самый страх - сделать распознавание типа пары. На ифах, думаю и сам сможешь написать распознование типа, а писать буду, скорее всего, я математикой, чтобы не терять очень много производительности. Мы сейчас сделали только одну диаганальную пару, котрая идет только сверху вниз и только слева направо.

Цитата
Это я старый неправильный кусок зацепил нечайно.

Всегда делай пост полностью рабочего скрипта(можно еще и ошибочный исправить), чтобы похерить его или не пытаться потом понять, почему не работает.

А теперь представь, что некто будет через год это пытаться понять и натыкаться на ошибки не понимая причины.

Сообщение отредактировал DarkMaster - 17.8.2013, 22:46


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


********

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



Цитата(DarkMaster @ 17.8.2013, 22:46) *

На ифах, думаю и сам сможешь написать распознование типа, а писать буду, скорее всего, я математикой, чтобы не терять очень много производительности.

Думаю да на ифах написал бы, а вот с математикой проблемы.
Цитата
А теперь представь, что некто будет через год это пытаться понять и натыкаться на ошибки не понимая причины.

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


***********

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



Определение типа пары
Код
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  (#xDelta) * (#yDelta) + 5 * (#xDelta) * (#yDelta) + #xDelta + #yDelta * 2 + 8
    log gosub #vector          || #xDelta #yDelta
end_for

stop_script

Если есть желающие упростить:
Код
set #vector  (#xDelta) * (#yDelta) + 5 * (#xDelta) * (#yDelta) + #xDelta + #yDelta * 2 + 8

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


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


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



а смысл этого действа? уникальными числами для каждой строки массива будут номера строк этого массива.
Задачу точнее сформулируй )


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.8.2013, 9:11
Сообщение #377


***********

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



есть восемь возможных вариантов пар найденных изображений. Т.е.:
xxx
x0x
xxx
Надо определить в какую сторону направлена найденная пара. Для дальнейшей индивидуальной обработки.
Допустимо не 8 уникальных идентификаторов, а 4, так чтобы порядок x0 и 0x считались одним типом.

// Массив дан только забивки тестовых данных и обработке математики. Порядок и значания внутри массива будут иными.

Сообщение отредактировал DarkMaster - 18.8.2013, 9:13


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


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Сижу, пытаюсь переварить условие задачи... \
Это ж вы пытаетесь сделать скрипт к Небесам?

Сообщение отредактировал Zeleax - 18.8.2013, 9:22


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.8.2013, 9:25
Сообщение #379


***********

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



Тело основного скрипта:
скрипт
Код
set linedelay 0
// Координата левого верхнего изображения.
// С точностью до пикселя.
set #startOffsetX 853
set #startOffsetY 478
// Шаг сетки изображений.
// С точностью до пикселя.
set #cellOffsetX 41
set #cellOffsetY 41
// Изображения шариков
set %image [ 1 ] 241626      //  желтые      
set %image [ 2 ] 102946      //  зеленые
set %image [ 3 ] 721005      //  красные
set %image [ 4 ] 9882846    //  черепа
set %image [ 5 ] 5399404    //  жизнь
set #countImage size (%image)

for #i 1 #countImage
   set $a findcolor ( 1 1 1111, 732 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 )
                   ПОДСТАВИТЬ СЮДА
                end_if
            end_for
        end_for
    end_for
end_for
log timer  #n
end_script

Необходимо понять в какое нарпавление смотрит %field [ #x #y ] = %field [ #xField #yField ]
У горизонтальной линии необходимо искать кандидата на третье изображение в одних координата, у вертикальной в других, у диагональных в третьих и четвертых. Чтобы понимать где искать следующее изображение, соответственно надо понимать направление пары.

Цитата
Это ж вы пытаетесь сделать скрипт к Небесам?

Да. И не пытаемся, а делаем и перевалили за половину.


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


***********

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



вот такой вот вариант разбиения на пары без учета порядка x0 и 0x. Правда уже с abs(), есть сомнения по быстродействию.
set #vector 2 * (#xDelta) * (#yDelta) + 2 + ( abs(#xDelta))


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

52 страниц V « < 17 18 19 20 21 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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