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

52 страниц V « < 8 9 10 11 12 > »   
Ответить в эту темуОткрыть новую тему
> Упростить скрипт
veiron
сообщение 13.8.2013, 8:48
Сообщение #181


********

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



Цитата(DarkMaster @ 13.8.2013, 8:42) *

Подставь в уме значения и посмотри, что будет происходить. Перевернул наоборот.

Код
set #xStart 1
if #xField < 2

Надо поменять местамию #xStar с #xField.
Код
set #xStart 1
if #xStart < 2
      set #xStart #xField - 1
   else
end_if

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


***********

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



Цитата
set #xStart 1
if #xStart < 2

у тебя всегда будет истиной. Выражение всегда будет 1 < 2
Цитата
При каких значениях #xField значение #xStart будет в переделах допустимого?

ты ответил
Цитата
set #xStart 1

Вот это и напиши. +/- пока не касайся.


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


********

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



Цитата(DarkMaster @ 13.8.2013, 8:51) *

у тебя всегда будет истиной. Выражение всегда будет 1 < 2

Код
set #xStart 0
if #xStart < #xField
   else
end_if


Вот отредактировал, теперь правильно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2013, 9:04
Сообщение #184


***********

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



Вернись назад.
Код
set #xStart 1
if #xField < 2
set #xStart #xField - 1
end_if

Все было почти верно. if #xField < 2 - условие верное. Но посмотри что ты делаешь дальше. Если #xField < 2, то ты вычитаешь единицу. Т.е. если #xField = 1, то ты делаешь 1 - 1 = 0. Может наоброт вычитать не надо, если #xField < 2?


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


********

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



Цитата(DarkMaster @ 13.8.2013, 9:04) *

Все было почти верно. if #xField < 2 - условие верное. Но посмотри что ты делаешь дальше. Если #xField < 2, то ты вычитаешь единицу. Т.е. если #xField = 1, то ты делаешь 1 - 1 = 0. Может наоброт вычитать не надо, если #xField < 2?

Код
set #xStart 1
if #xField < 2
else
set #xStart #xField - 1
end_if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2013, 9:12
Сообщение #186


***********

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



о как забавно. Подводил к одному варианту, а ты сразу перескочил на шаг дальше. Оно так даже заработает. set #xStart 1 убери внутрь ифа то. Он там изначально и должен был быть. Если #xField = 1, то и начало поиска должно начинаться set #xStart 1.

Вобщем первый момент сделали. Для остальных координат, думаю, сделаешь без проблем.


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


********

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



Цитата(DarkMaster @ 13.8.2013, 9:12) *

о как забавно. Подводил к одному варианту, а ты сразу перескочил на шаг дальше. Оно так даже заработает. set #xStart 1 убери внутрь ифа то. Он там изначально и должен был быть. Если #xField = 1, то и начало поиска должно начинаться set #xStart 1.

Код

if #xField < 2
set #xStart 1
else
set #xStart #xField - 1
end_if

Так правильно?
Цитата
Вобщем первый момент сделали. Для остальных координат, думаю, сделаешь без проблем.

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


***********

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



Цитата
Так правильно?

Да. Отступы перед set'ами сделай, чтобы глаза потом не ломать. Но это уже оформление. Тут только внешне.


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


********

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



Цитата(DarkMaster @ 13.8.2013, 9:20) *

Да. Отступы перед set'ами сделай, чтобы глаза потом не ломать. Но это уже оформление. Тут только внешне.

Код
if #xField < 2
    set #xStart 1
else
    set #xStart #xField - 1
end_if

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


***********

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



ага.


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


********

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



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

ага.

Спасибо вам за терпеливое и понятливое разьяснение. Пойду теперь скрипт переделывать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 13.8.2013, 11:53
Сообщение #192


********

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



Код
         if #xField < 2
            set #xStart 1
         else
            set #xStart #xField - 1
         end_if
         if #xField < 7
            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 < 7
            set #yEnd 6
         else
            set #yEnd #yField + 1
         end_if

Код
11:49:44 9 (, 38): текущая ячейка 1 1 . Значение ячейки 5
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField
11:49:44 9 (, 63): обнаружена пара в ячейках #x #y и #xField #yField

И так почему-то все ячейки?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2013, 12:12
Сообщение #193


***********

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



Цитата
if #xField < 7

ошибка. Поле у нас 6*6, если я правильно понял. Подставь 6 и поймешь.
Цитата
обнаружена пара в ячейках #x #y и #xField #yField

странно, что не подставляет значения. Индексы должен писать. Полностью скрипт выкладывай. Где-то что-то не так.
Цитата
И так почему-то все ячейки?

Пара будет везде потому, что мы еще не успели исключить исходную ячейку. Смотри, мы нашли совпадение в координатах %field [ 3 5 ], после чего ищем такую же картинку в +/- 1 диапазоне. Но ведь %field [ 3 5 ], тоже находится в этом диапазоне. Надо ее исключить. В условие:
if %field [ #x #y ] = %field [ #xField #yField ]
необходимо так же добавить условие, что координаты исходной картинки и текущей различные.

Координаты в данном случае то же самое, что и индексы массива, например, [ 3 5 ]
Вопрос:
1) Какие переменные содержат в себе координаты исходного изображения?
2) Какие переменные содержат в себе координаты проверяемого изображения в области +/-1?


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


********

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



Цитата(DarkMaster @ 13.8.2013, 12:12) *

ошибка. Поле у нас 6*6, если я правильно понял. Подставь 6 и поймешь.
странно, что не подставляет значения. Индексы должен писать. Полностью скрипт выкладывай. Где-то что-то не так.
поставил. вроде ни каких изменений нет.
Скрипт
Код

set #startOffsetX 260
set #startOffsetY 145
// Шаг сетки изображений.
// С точностью до пикселя.
set #cellOffsetX 41
set #cellOffsetY 41
// Изображения шариков
set %image [ 1 ] 476925            
set %image [ 2 ] 453298      
set %image [ 3 ] 134586    
set %image [ 4 ] 746852  
set %image [ 5 ] 643258    
set #countImage size (%image)

for #i 1 #countImage
// Имидж или колор сам выбирай.
   // set $a findimage ... %image [ #i ] %arr ...
    set $a findcolor ( 100, 100 500, 500  1 1 (%image[ #i ]) %arr  2 )
    log $a   финд колор
    for #n 1 $a 1
        set #fieldX ( %arr [ #n 1 ] - #startOffsetX ) / #cellOffsetX + 1
        set #fieldY ( %arr [ #n 2 ] - #startOffsetY ) / #cellOffsetY + 1
        log #fieldX #fieldY
        set %field [ #fieldY #fieldX ] #i
    end_for
end_for
///////////////////////////////////
for #xField 1 6 1 // Я хз какого размера у тебя поле. Предположим 10 на 10.
    for #yField 1 6 1
             log текущая ячейка #xField #yField . Значение ячейки %field [ #xField #yField ]
         if #xField < 2
            set #xStart 1
         else
            set #xStart #xField - 1
         end_if
         if #xField < 6
            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 < 6
            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 ]
                      log обнаружена пара в ячейках #x #y и #xField #yField
                   end_if
              end_for
         end_for
    end_for
end_for


Цитата
Пара будет везде потому, что мы еще не успели исключить исходную ячейку. Смотри, мы нашли совпадение в координатах %field [ 3 5 ], после чего ищем такую же картинку в +/- 1 диапазоне. Но ведь %field [ 3 5 ], тоже находится в этом диапазоне. Надо ее исключить. В условие:
if %field [ #x #y ] = %field [ #xField #yField ]
необходимо так же добавить условие, что координаты исходной картинки и текущей различные.

Код
if %field [ #x #y ] = %field [ #xField #yField ]
  if  #x #y

Так

Цитата
Координаты в данном случае то же самое, что и индексы массива, например, [ 3 5 ]
Вопрос:
1) Какие переменные содержат в себе координаты исходного изображения?
2) Какие переменные содержат в себе координаты проверяемого изображения в области +/-1?

1. #x #y
2. #xField #yField

Сообщение отредактировал veiron - 13.8.2013, 12:29
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2013, 12:31
Сообщение #195


***********

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



Цитата
поставил. вроде ни каких изменений нет.

Я имел ввиду в голове посчитай, что получится.

Цитата
if %field [ #x #y ] = %field [ #xField #yField ]
if #x #y


Так

не торопись (IMG:style_emoticons/default/smile.gif)
Цитата
1) Какие переменные содержат в себе координаты исходного изображения?
2) Какие переменные содержат в себе координаты проверяемого изображения в области +/-1?

1. #x #y
2. #xField #yField

Еще раз, внимательнее. Мы когда первое изображение искали, в каких переменных перебирали координаты? Это будет исходная картинка.


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


********

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



Цитата(DarkMaster @ 13.8.2013, 12:31) *

Я имел ввиду в голове посчитай, что получится.
не торопись (IMG:style_emoticons/default/smile.gif)
Искать будет только до 5 ячейки.

Цитата
Еще раз, внимательнее. Мы когда первое изображение искали, в каких переменных перебирали координаты? Это будет исходная картинка.


#fieldX #fieldY
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2013, 12:38
Сообщение #197


***********

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



Цитата
if #xField < 7
set #xEnd 6
else
set #xEnd #xField + 1
end_if

Подставь вместо #xField возможные значения. И посчитай в голове что получится. Значения:
1) 1
2) 3
3) 6
Цитата
Еще раз, внимательнее. Мы когда первое изображение искали, в каких переменных перебирали координаты? Это будет исходная картинка.
#fieldX #fieldY

Правильно. Если #fieldX #fieldY исходные координаты, то какие координаты при поиске +/-1?

Сообщение отредактировал DarkMaster - 13.8.2013, 12:38


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


********

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



Цитата(DarkMaster @ 13.8.2013, 12:38) *

Подставь вместо #xField возможные значения. И посчитай в голове что получится. Значения:
1) 1
2) 3
3) 6
думал что 123456

Цитата
Правильно. Если #fieldX #fieldY исходные координаты, то какие координаты при поиске +/-1?

#xField #yField
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2013, 12:47
Сообщение #199


***********

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



Цитата
думал что 123456

Всмысле? ну просчитай сам, что получится, если следовать логике скрипта.
Цитата
Если #fieldX #fieldY исходные координаты, то какие координаты при поиске +/-1?

#xField #yField

Так меня уже замыкать начинает) Откуда ты взял #fieldX?) Я шибко не вглядывался и посчитал, что имелось ввиду #xField #yField.


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


********

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



Цитата(DarkMaster @ 13.8.2013, 12:47) *

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

если #xField 7 то #xStart при -1 будет 6

Цитата
Так меня уже замыкать начинает) Откуда ты взял #fieldX?) Я шибко не вглядывался и посчитал, что имелось ввиду #xField #yField.

#fieldX это из первого скрипта который собирал все цвета на поле.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

52 страниц V « < 8 9 10 11 12 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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