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

52 страниц V « < 5 6 7 8 9 > »   
Ответить в эту темуОткрыть новую тему
> Упростить скрипт
veiron
сообщение 11.8.2013, 16:25
Сообщение #121


********

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



Цитата(WKnight @ 11.8.2013, 15:55) *

Несогласен. У mp3 другие сигнатуры.

Тогда если только .wav, из картинок .bmp на рабочем столе у меня только одна, и совсем в другом углу монитора. Не сама же она в пилот залетела!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.8.2013, 16:50
Сообщение #122


***********

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



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


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


********

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



Цитата(DarkMaster @ 11.8.2013, 16:50) *

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

Так тогда не понятно будет, где какого цвета шар? Так у меня было каждый фал свой цвет. А так я правильно делаю. Или как то можно попроще. А то у меня получается. таких блоков 5 + еще 5 которые ищут по вертикали. Потом еще надо еще 6 которые будут искать вокруг найденных 2. И того 16 блоков получается.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.8.2013, 17:32
Сообщение #124


***********

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



то ли я дурак, то ли ты видишь вселенскую мудрость...
ну замени %s на %f - все будет тоже самое, только загрузка станет не нужна...


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


********

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



Цитата(DarkMaster @ 11.8.2013, 17:32) *

то ли я дурак, то ли ты видишь вселенскую мудрость...
ну замени %s на %f - все будет тоже самое, только загрузка станет не нужна...

Заменил. А как теперь из общего массива вытащить цвет под №5? Раньше у меня был каждый файл для определенного цвета.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.8.2013, 17:56
Сообщение #126


***********

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



перечитал скрипт. За однобуквенные переменные и 0 комментариев хочется дать немного в лоб)
я сначала не так понял всю логику скрипта. При твоем подходе %field можно вообще не генерировать. Можно сразу пачку массивов создать разных. У меня была мысль пойти по такому пути, но мне показалось решение с полноценным воссозданием поля более перспективным и полноценным. Я бы искал пары прямо в %field, а потом прогонял возможные варианты при которых картинка "соберется". Тут внезапно подвел indexOf, который оказался не в состоянии искать в границах Х координаты в массиве. Из-за этого я уже не уверен в правильности варианта - быстродействие может подвести. На самом деле я сегодня весь день в голове фоном прокручиваю алгоритмы поиска, пытаясь найти красивое решение. Самое шикарное по быстродействию и красивое боюсь не потянуть, там математика больно хитрая, но вариантов решения действительно много. Кстати схема поиска вправо и вниз при некоторых реализациях может пропускать варианты сборки. В целом: работает - не трогай). У меня пока мысли крутятся еще. Может не поленюсь.

По диагонали собирать надо или нет?

Сообщение отредактировал DarkMaster - 11.8.2013, 17:57


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


********

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



Цитата(DarkMaster @ 11.8.2013, 17:56) *

перечитал скрипт. За однобуквенные переменные и 0 комментариев хочется дать немного в лоб)

Постараюсь исправиться.
Цитата
Кстати схема поиска вправо и вниз при некоторых реализациях может пропускать варианты сборки. В целом: работает - не трогай).

Мне супер скорость и не надо, а вот что ходы будет пропускать это плохо.
Цитата
У меня пока мысли крутятся еще. Может не поленюсь.

Было бы не плохо.
Цитата
По диагонали собирать надо или нет?

(IMG:http://s2.ipicture.ru/uploads/20130811/F1WUVWsI.jpg)
Да надо. На картинке, белым цветом выделены те которые я нашел. А желтым, это которые можно подвинуть что бы составить линию из трех шаров. Мне надо с начало найти 2 вместе, а потом проверить 6 этих точек. И еще надо их распознать так, что левых 3 шара подводятся с левой сторон, а правые справа.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.8.2013, 18:55
Сообщение #128


***********

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



С indexOf подстава ппц... Так удобно было бы пары искать... Ну будем думать.


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


********

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



Цитата(DarkMaster @ 11.8.2013, 18:55) *

С indexOf подстава ппц... Так удобно было бы пары искать... Ну будем думать.

Так что не стоит дальше пробовать с indexOf ? У меня и так уже мозг закипает. А надо еще как-то придумать, что бы к 2 еще 6 точек найти, так доже страшно представить как я это делать буду с моим 0 познанием в програмированнии.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.8.2013, 20:37
Сообщение #130


***********

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



Вообще план изначально был таков:
1) indexOf до первого найденного элемента в %field
2) indexOf в области от х до х+1 и от у до у+1 относительно найденного элемента. Определяем существует ли пара, автоматически получаем ее координаты(или их).
3) расчет области и indexOf не менее 3 элементов около найденного. Таким образом мы бы исключили сразу зону, если в ней недостаточно элементов одного типа. Причем это было бы скорее всего очень мало затратно по ресурсам. Правда возможно будет быстрее просто ифами, если найдено по диагонали, надо тестить сколько жрет поиск и сколько ифы.
4) Просчет позиции. Возможно ли собрать из получившегося линию.
5) indexOf со следующей ячейки до первой найденной.

Для просчета возможности линии можно попробовать использовать математику. Тут может помочь присвоение степеней двойки для каждой из клеток. Получить тем самым битовую маску, потом сделать побитовое сравнение, возможно сравнение текста. Вот только не помню регекспы есть уже или нет. Фактически можно создать что-то вроде сигнатур, а потом их использовать для сравнения.

Из-за indexOf пункты 2, 3, 5 придется заменить обычными ифами и форами. Это по идее должно быть существенно медленнее.

Цитата
моим 0 познанием в програмированнии.

98% моего познания в программировании - это пилот) Но вроде шибко не мешает. Хотя иногда охота научиться новым трюкам.

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


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


********

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



Цитата(DarkMaster @ 11.8.2013, 20:37) *

Для просчета возможности линии можно попробовать использовать математику. Тут может помочь присвоение степеней двойки для каждой из клеток. Получить тем самым битовую маску, потом сделать побитовое сравнение, возможно сравнение текста. Вот только не помню регекспы есть уже или нет. Фактически можно создать что-то вроде сигнатур, а потом их использовать для сравнения.

Даже не представляю как это сделать в пилоте. Если надумаете объяснить как это делается, то не надо, мой мозг к такому еще не готов))

Цитата
98% моего познания в программировании - это пилот) Но вроде шибко не мешает. Хотя иногда охота научиться новым трюкам.

У меня 100% познаний это пилот. Я когда тут на форуме увидел скрипты, быстренько закрыл форум и написал в пилоте скрипт с одними left и wait. Потом этого оказалось мало, стал больше вникать, благодоря вам и Zeleax дело потихоньку сдвинулось с мертвой точки.

P.S Скорее всего буду 2 искать indexOf, потом ифом проверять остальные 6 клеток. Только теперь опять проблема, как перевести назад цифры с файла в координаты поля.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.8.2013, 21:37
Сообщение #132


***********

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



Цитата
P.S Скорее всего буду 2 искать indexOf

А не получится при таком синтаксисе. Он вам будет искать в диапазоне У-У+1, а вот X будет от 1 и до конца массива. В этом и беда.
Цитата
Только теперь опять проблема, как перевести назад цифры с файла в координаты поля.

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


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


********

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



Цитата(DarkMaster @ 11.8.2013, 21:37) *

А не получится при таком синтаксисе. Он вам будет искать в диапазоне У-У+1, а вот X будет от 1 и до конца массива. В этом и беда.

Вроде работает. Правдо фор много при этом работает. Я делаю как если в фале есть запись 11 значит это левая верхняя клетка, значит по горизантали спрова от нее в фале должно быть 12. Я тупо делаю +1 и в фале ищу строчку с цифрой 12. Вроде получается довольно быстро. Сейчас еще вроде способ придумал, В файл записываются не только цифры цвета, но и сами координаты. Вот сейчас пробую по координатам найти рядом 2 и сразу 3. Может что получится, по неумению, может и повезет)

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

А как из этого вашего скрипта, напрямую записать разных 5 массивов?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.8.2013, 22:56
Сообщение #134


***********

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



Учитывая, что трехмерных массивов не бывает, то я вижу всего два способа:
1) развернуть for и просто подставить 5 разных массивов. Т.е. рабочая часть будет в 5 раз длиннее. Ну можно что-то в подпрограммы выкинуть, если сильно не хочется удлинять скрипт.

2) Попробовать на*бать природу. Есть такой забавный момент:
Код
set #var 123
set %arr [ 1 1 ] #
set %arr [ 1 2 ] var
msg %arr [ 1 ]
stop_script

Можно попробовать подсунуть подобным образом массив в паре с оператором eval. Но у меня не получилось. Может zeleax или кнайт осилят.

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


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


********

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



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

Учитывая, что трехмерных массивов не бывает, то я вижу всего два способа:
1) развернуть for и просто подставить 5 разных массивов. Т.е. рабочая часть будет в 5 раз длиннее. Ну можно что-то в подпрограммы выкинуть, если сильно не хочется удлинять скрипт.

Попробовал так и сделать. Работает. Все равно это намного будет быстрее ,чем у меня было на ифах. Такой скрипт уже есть на форуме, только там все так замудрено, что я день над ним отсидел, так и ни чего и не понял.

Цитата
2) Попробовать на*бать природу. Есть такой забавный момент:
Можно попробовать подсунуть подобным образом массив в паре с оператором eval. Но у меня не получилось. Может zeleax или кнайт осилят.

Было бы неплохо, еслиб помогли.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 12.8.2013, 8:39
Сообщение #136


***********

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



Код
set #i 1
set $b %arr#i
eval (set $b 123)
msg %arr1 [ 1 ]
stop_script

Оно работает!

сколько всего типов фигур ищем?


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


********

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



Цитата(DarkMaster @ 12.8.2013, 8:39) *

сколько всего типов фигур ищем?

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


***********

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



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


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


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Как наше состояние одним словом!? - Работает! - А двумя словами? - Не работает...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 12.8.2013, 9:55
Сообщение #140


***********

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



xolost, жду твоего решения данного вопроса.


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

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

 

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