|
|
  |
Упростить скрипт |
|
|
DarkMaster |
13.8.2013, 8:51
|
          
Модератор 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____
|
|
|
|
veiron |
13.8.2013, 11:53
|
       
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 И так почему-то все ячейки?
|
|
|
|
DarkMaster |
13.8.2013, 12:12
|
          
Модератор 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____
|
|
|
|
veiron |
13.8.2013, 12:22
|
       
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
|
|
|
|
DarkMaster |
13.8.2013, 12:31
|
          
Модератор 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____
|
|
|
|
veiron |
13.8.2013, 12:34
|
       
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972

|
Цитата(DarkMaster @ 13.8.2013, 12:31)  Я имел ввиду в голове посчитай, что получится. не торопись (IMG: style_emoticons/default/smile.gif) Искать будет только до 5 ячейки. Цитата Еще раз, внимательнее. Мы когда первое изображение искали, в каких переменных перебирали координаты? Это будет исходная картинка. #fieldX #fieldY
|
|
|
|
DarkMaster |
13.8.2013, 12:38
|
          
Модератор 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____
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|