|
Научить пилот логике в игре Небеса |
|
|
veiron |
2.1.2013, 10:47
|
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
|
|
|
|
veiron |
2.1.2013, 21:47
|
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 второй картинки
|
|
|
|
veiron |
3.1.2013, 0:52
|
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 секунд не обновится и заново начну поиск.
|
|
|
|
veiron |
3.1.2013, 1:04
|
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972
|
Цитата(DarkMaster @ 3.1.2013, 1:56) Я помогу советом, вариантами алгоритмов, как я их вижу, но писать не буду) У меня своя коза глючная есть, ее надо полировать.
Я и не прошу, за меня сделать, мне самому интересно его сделать, пускай он будет и огромный, мне главное на данный момент освоить как его делать. Цитата Кстати я наверно все же делал полноценный массив со всеми изображениями Такое мне врятли осилить, даже при помощи Ваших советов. Мне чем проще тем лучше.Пока я только понял, что я могу найти изображение из 2 одинаковых шариков, потом обкликать его со всех сторон, потом перешел к другому цвету и так дальше, пока не переберу все цвета. а вот как если не обкликивая, найти вторым финдимиджем и придвинуть его к 2 найденным рание, я так понять и не могу.
|
|
|
|
DarkMaster |
3.1.2013, 1:36
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27724
Пользователь №: 11.279
|
1) найдите интересующий вас шарик 2) найдите прилежащие шарики, которые находятся в области рядом с найденными первый раз 3) ваш массив попадут новые шарики(если они есть) и уже найденные ранее 4) сравните результаты первого и второго финдимиджа, определите те, которые появились только во втором поиске(новые координаты)
Таким образом у нас будет найдена пара. Затем по тому же самому алгоритму мы сможем найти еще один шарик, который нужно сдвинуть. Хочу обратить внимание, что если шарики будут расположены вот так: X0X 0X То придется прорабатывать более слжный алгоритм, что передвинуть центральный шарик.
Сообщение отредактировал DarkMaster - 3.1.2013, 1:37
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
veiron |
3.1.2013, 1:46
|
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972
|
Цитата(DarkMaster @ 3.1.2013, 2:36) 1) найдите интересующий вас шарик 2) найдите прилежащие шарики, которые находятся в области рядом с найденными первый раз 3) ваш массив попадут новые шарики(если они есть) и уже найденные ранее 4) сравните результаты первого и второго финдимиджа, определите те, которые появились только во втором поиске(новые координаты) Таким образом у нас будет найдена пара. Затем по тому же самому алгоритму мы сможем найти еще один шарик, который нужно сдвинуть.
Вот я и не могу понять как сравнить результат первого со вторым. К примеру у меня есть массив arr от первого финдимиджа и массив cars от второго финдимиджа, и как их сравнить и еще к тому же заставить идти к друг другу, не представляю пока. Цитата Хочу обратить внимание, что если шарики будут расположены вот так: X0X 0X То придется прорабатывать более слжный алгоритм, что передвинуть центральный шарик. Об этом я даже НЕ мечтаю. мне бы собрать те которые рядом стоят)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|