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

11 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Научить пилот логике в игре Небеса
veiron
сообщение 2.1.2013, 10:47
Сообщение #1


********

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



Подскажите(скрипт за меня писать не прошу, сам буду пробовать сделать), можно как то заставить пилот соображать, что и как передвинуть и какие действия ему надо задать.
(IMG:http://s019.radikal.ru/i637/1301/50/415e2d17cdb7.jpg)
Как его научить, что бы он если видит 2 желтых, а рядом еще 1, то он бы взял и подвинул 1 желтый к двум. или два зеленых и 1 есть рядом, он бы подвинул его. Координаты не задашь, они постоянно в разных местах, все варианты тоже прощитать не возможно.

Сообщение отредактировал Zeleax - 4.1.2013, 10:37
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.1.2013, 21:21
Сообщение #2


***********

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



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

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


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


********

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



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

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

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


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

set $а Findimage ($kartinka_x $kartinka_y ( $kartinka_RED ) %crds 2 90 1 2 )
%crds[1 1] + #deltaX // x первой картинки
%crds[2 2] + #deltaY // y первой картинки
%crds[3 3]+ #deltaX // x второй картинки
%crds[4 4] + #deltaY // y второй картинки
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.1.2013, 23:30
Сообщение #4


***********

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



Цитата
x второй картинки %crds[3 3]

цифирки массива не понимаете зачем нужны (IMG:style_emoticons/default/smile.gif)
Это координаты переменной в массиве. Вы двигаетесь по диагонали.
А смещение всегда и будет фиксированное. Зачем оно нужно динамическое в данном случае?


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


********

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



Цитата(DarkMaster @ 3.1.2013, 0:30) *

цифирки массива не понимаете зачем нужны (IMG:style_emoticons/default/smile.gif)
Это координаты переменной в массиве. Вы двигаетесь по диагонали.
А смещение всегда и будет фиксированное. Зачем оно нужно динамическое в данном случае?


Почему то сразу пишет ошибку символ не распознан:
%crds[2 2] + #deltaY // y первой картинки
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2013, 0:19
Сообщение #6


***********

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



Цитата

Почему то сразу пишет ошибку символ не распознан:
%crds[2 2] + #deltaY // y первой картинки

А потому что не разобрались что за циферки и движитесь по диагонали.


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


********

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



Цитата(DarkMaster @ 3.1.2013, 1:19) *

А потому что не разобрались что за циферки и движитесь по диагонали.


С этим я разобрался. кликнул с одной картинки в 3 разных места. в принципе длинный скрипт если на поле всего одна картинка с 2 шариками вместе находится я уже более мение придумал. а вот если на поле их акажется 2, тогда что пилот в массив запишет, первую найденную или 2 или вообще запутается и выдаст ошибку.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2013, 0:29
Сообщение #8


***********

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



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


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


******

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



Цитата(DarkMaster @ 3.1.2013, 1:29) *

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

(IMG:style_emoticons/default/tongue.gif)

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


********

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



Цитата(DarkMaster @ 3.1.2013, 1:29) *

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


Про count в финдимидже прочитал, мне в принципе 2 найденное и не надо, одного хватит. Состряпал не большой скриптик на финдимидже, нашел первым финдимиджем 2 красных шарика вместе, вторым нашел 1 красный и все стопор. 1 незнает где есть еще один, а 2 не знает где ему еще пару найти и так пилот гонял по кругу пока не проиграл)

Цитата(xolost @ 3.1.2013, 1:35) *

(IMG:style_emoticons/default/tongue.gif)

Простите...

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


******

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



Цитата(veiron @ 3.1.2013, 1:38) *

Во время зашел))

Ну я пока просто читаю, задачка на самом деле интересная )
Вариантов решения действительно несколько..
Дарк Вам поможет) а я, как освобожусь напишу тоже скрипт для этой задачки, посмотрю сколько времени уйдет и как получится)) ну чисто для себя..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2013, 0:48
Сообщение #12


***********

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



Цитата
2 найденное и не надо

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

Тренироваться лучше на скриншоте. Имхо проще. Для эмитации разных комбинаций можно закрашивать некоторые элементы.

Цитата
tongue.gif

Простите...

-1 все равно не правильно)


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


********

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



Цитата(xolost @ 3.1.2013, 1:47) *

Ну я пока просто читаю, задачка на самом деле интересная )
Вариантов решения действительно несколько..
Дарк Вам поможет) а я, как освобожусь напишу тоже скрипт для этой задачки, посмотрю сколько времени уйдет и как получится)) ну чисто для себя..

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

Цитата(DarkMaster @ 3.1.2013, 1:48) *

Надо. Потому, что первым может быть изображение найденное предыдущим поиском.

А зачем мне предыдущее, я сделаю, проверил красных нет, пошел к зеленым, и так пока все не посмотрел. Потом стану в вайт пока бой через 30 секунд не обновится и заново начну поиск.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2013, 0:56
Сообщение #14


***********

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



Я помогу советом, вариантами алгоритмов, как я их вижу, но писать не буду) У меня своя коза глючная есть, ее надо полировать.

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


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


********

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



Цитата(DarkMaster @ 3.1.2013, 1:56) *

Я помогу советом, вариантами алгоритмов, как я их вижу, но писать не буду) У меня своя коза глючная есть, ее надо полировать.

Я и не прошу, за меня сделать, мне самому интересно его сделать, пускай он будет и огромный, мне главное на данный момент освоить как его делать.
Цитата
Кстати я наверно все же делал полноценный массив со всеми изображениями

Такое мне врятли осилить, даже при помощи Ваших советов. Мне чем проще тем лучше.Пока я только понял, что я могу найти изображение из 2 одинаковых шариков, потом обкликать его со всех сторон, потом перешел к другому цвету и так дальше, пока не переберу все цвета. а вот как если не обкликивая, найти вторым финдимиджем и придвинуть его к 2 найденным рание, я так понять и не могу.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2013, 1:36
Сообщение #16


***********

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



1) найдите интересующий вас шарик
2) найдите прилежащие шарики, которые находятся в области рядом с найденными первый раз
3) ваш массив попадут новые шарики(если они есть) и уже найденные ранее
4) сравните результаты первого и второго финдимиджа, определите те, которые появились только во втором поиске(новые координаты)

Таким образом у нас будет найдена пара. Затем по тому же самому алгоритму мы сможем найти еще один шарик, который нужно сдвинуть. Хочу обратить внимание, что если шарики будут расположены вот так:
X0X
0X
То придется прорабатывать более слжный алгоритм, что передвинуть центральный шарик.

Сообщение отредактировал DarkMaster - 3.1.2013, 1:37


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


********

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



Цитата(DarkMaster @ 3.1.2013, 2:36) *

1) найдите интересующий вас шарик
2) найдите прилежащие шарики, которые находятся в области рядом с найденными первый раз
3) ваш массив попадут новые шарики(если они есть) и уже найденные ранее
4) сравните результаты первого и второго финдимиджа, определите те, которые появились только во втором поиске(новые координаты)
Таким образом у нас будет найдена пара. Затем по тому же самому алгоритму мы сможем найти еще один шарик, который нужно сдвинуть.

Вот я и не могу понять как сравнить результат первого со вторым. К примеру у меня есть массив arr от первого финдимиджа и массив cars от второго финдимиджа, и как их сравнить и еще к тому же заставить идти к друг другу, не представляю пока.
Цитата
Хочу обратить внимание, что если шарики будут расположены вот так:
X0X
0X
То придется прорабатывать более слжный алгоритм, что передвинуть центральный шарик.

Об этом я даже НЕ мечтаю. мне бы собрать те которые рядом стоят)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2013, 1:52
Сообщение #18


***********

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



Тут вам пригодится for, size(чтобы задать максимальное значение for), дальше берете элемент из первого массива и сравниваете с каждым элементов второго массива.

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


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


********

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



Цитата(DarkMaster @ 3.1.2013, 2:52) *

Тут вам пригодится for, size(чтобы задать максимальное значение for), дальше берете элемент из первого массива и сравниваете с каждым элементов второго массива.

C for я уже сталкивался, а size мне вот это надо:
Цитата
'set size (%arr <x> <y>)'
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2013, 2:12
Сообщение #20


***********

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



Отадаленно узнаю знакомые черты)
Тут пропущенна переменная которой присваивается значение. В таком виде будет уничтожен массив, если не ошибаюсь, хотя откуда тогда тут взялись <x><y> не понятно. Вобщем или пропустили или лишнего добавили, в зависимости от того, чего хотели.


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

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

 

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