|
Сценарий поиска нескольких ресурсов, С интерфейсом |
|
|
| esqado |
17.3.2012, 17:01
|

    
Journeyman
Сообщений: 357
Регистрация: 5.11.2011 Группа: Пользователи Наличность: 0
Пользователь №: 14.217

|
Сценарий поиска цифр в заданной области для нескольких ресурсов. (IMG:http://savepic.su/1613040m.jpg) (IMG:http://s1.hostingkartinok.com/uploads/thumbs/2012/03/09c8aa718cc98d3a4aa8df8d9235d7be.png) Координаты, количество, имена картинок и путь к картинкам не обязательно вписывать в код. При запуске команда prompt запрашивает у пользователя данные для дальнейшей работы. Будьте аккуратны с вводом данных. При ошибке сценарий работать не будет!Путь к файлам должен заканчиваться знаком "\" (естественно без кавычек). Сценарий не понимает точки, разделяющие числа. Внимательно смотрите за картинками чисел. В данном примере из двух четверок находилась только одна. Смотрите пример, как обрезать цифру, чтобы она определялась Так же необходимы картинки самих ресурсов (в примере: золото, серебро, медь, бриллиант). Имена файлов ресурсов рекомендую сохранять на русском языке. В дальнейшем они будут отображаться в конечном результате. Можно искать не все ресурсы. Например бриллианты используются редко и брать их в расчёт при подсчёте нет необходимости. Поиск цифр с "интерфейсом"
Код // Сценарий поиска изображений в заданной области
set $bmp .bmp // Запрос данных от пользователя // Команда prompt записывает в переменные данные от пользователя set $path prompt (Укажите путь к файлам картинок) set $startX prompt (Начальная координата по оси X) set $startY prompt (Начальная координата по оси Y) set $endX prompt (Конечная координата по оси X) set $endY prompt (Конечная координата по оси Y) set $resource prompt (Введите колличество ваших ресурсов) for #c 1 $resource set $resName prompt (Введите название ресурса /nНазвание должно соответствовать имени фалйа) set %cash[#c] $resName end_for set #h $resource + 1 set %cashCrdsX[1 #h] $endX //+++++++++++++++++++++++++++++++++++++ // Поиск изображений ресурсов for #i 1 $resource set #a findimage ($startX $startY $endX $endY ($path%cash[#i].bmp) %crds 2) set %cashCrdsX[1 #i] %crds[1 1] end_for //+++++++++++++++++++++++++++++++++++++ // Поиск цифр в пределах "ячейки" ресурса for #w 1 $resource set #startX %cashCrdsX[1 #w] set #end #w + 1 set #endX %cashCrdsX[1 #end] set #s 1 for #step 0 9 // Поиск изображений // Конечными координатами для области картинок являются стартовые координаты следующего ресурса set $check findimage (#startX $startY #endX $endY (images\numbers\money\#step$bmp) %crds 2 88 -1) // Проверка на наличие if $check > 0 set #size size (%crds) for #i 1 #size // Запись в массив %m[#s 1] числа, %m[#s 2]координаты set %m[#s 2] #step set %m[#s 1] %crds[#i 1] set #s #s + 1 end_for end_if end_for gosub sort end_for // Собираем в строку все данные массива for #q 1 #c set $cash $cash %cash[#q] - %money[#q] end_for // Вывод данных msg У вас $cash end_script //===================================== :sort // Сортировка массива координат найденных картинок // Присваиваем переменной размер массива set #n size (%m) hint Отдельное спасибо Zeleax за код сортировки массива // Сортируем массив for #i 1 #n set #min %m[#i 1] set #imin #i set #ii #i + 1 for #j #ii #n if %m[#j 1] < #min set #min %m[#j 1] set #imin #j end_if end_for // меняем местами минимальный элемент с текущим, используя промежуточную #z set #z %m[#i 1] set %m[#i 1] %m[#imin 1] set %m[#imin 1] #z set #z %m[#i 2] set %m[#i 2] %m[#imin 2] set %m[#imin 2] #z end_for // Соберем все элементы в одну текстовую строку set $s // пустая строка for #i 1 #n set $s $s%m[#i 2] //(X= %m[#i 1]) // добавляем каждый элемент в конец строки // Записываем в массив строку set %money[#w] $s end_for // Обнуляем массив set $a findcolor ( 1, 1 2, 2 1 1 167772150 %m 1) return
Не забываем привязывать до запуска
--------------------
В обычном программировании: любое значение может быть преобразовано в тип string В программировании Pilot: любое значение должно быть типа имейдж.
|
|
|
|
|
|
|
  |
Ответов
| WKnight |
19.6.2012, 13:59
|
       
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688

|
Цитата но один фиг не очень понял Цитата Только, пожалуйста, не надо говорить "ничего не понятно". Приводите кусочки текста которые не ясны, мне достаточно хорошо известно, насколько сложны для понимания массивы и прочие програмистские навороты, но я соглащусь с предыдущим оратором, лучше научить ловить рыбу. если конкретно про массивы, есть мелкая ссылка, которая помогла многим. теоретически можно объяснить на другом примере. если проблема в другом - задавайте конкретные вопросы, здесь с удовольствием ответят.
|
|
|
|
|
|
Сообщений в этой теме
zavas Сценарий поиска нескольких ресурсов 17.3.2012, 17:01 Cooll set $path D:\images\
set ... 4.6.2012, 14:12 WKnight RE: Сценарий поиска нескольких ресурсов 4.6.2012, 16:01 zavas set $resource 494
Следующий за этой строкой ц... 4.6.2012, 16:07 WKnight "сколько видов денег"
или "типов... 4.6.2012, 18:01 zavas а в чём разница между видом и типом? 4.6.2012, 18:20 Cooll // Сценарий поиска изображений в заданной области
... 6.6.2012, 16:27 WKnight проверьте букву диска в забитом в скрипте пути, та... 6.6.2012, 17:08 Cooll теперь уже вроде нет ошибки , но останавливаетса с... 6.6.2012, 17:28 zavas Что значит останавливается?
Открой панель Параметр... 6.6.2012, 18:18 Cooll http://SSMaker.ru/c20879fd/ вот которое значение м... 6.6.2012, 19:50 Cooll не могу вывестизначение которое скрипт сканировал
... 7.6.2012, 12:08 Cooll Все сделал , всем спасибо за помощь 7.6.2012, 12:41 Zeleax
Все сделал , всем спасибо за помощь
а почему не р... 7.6.2012, 12:43 Cooll у меня сдесь for #step 0 9 было не 0 9 , а 0 1 7.6.2012, 13:00 zavas Если не сложно - уберите код под спойлер.
Я вчера ... 7.6.2012, 17:43 Cooll Вот у меня проблема , ищет числа через раз . Обрез... 7.6.2012, 21:52 zavas А какая винда? Стоит сглаживание шрифтов? Процент ... 8.6.2012, 1:06 Cooll
А какая винда? Стоит сглаживание шрифтов? Процент... 8.6.2012, 9:12 DarkMaster
http://uopilot.tati.pro/index.php?title=Findimage 8.6.2012, 9:36 Cooll
set $path C:\Users\Евгений\De... 8.6.2012, 9:52 Zeleax в findcolor вместо type пишите 2, вместо accuracy ... 8.6.2012, 10:02 Cooll
в findcolor вместо type пишите 2, вместо accuracy... 8.6.2012, 10:06 Zeleax Стоп. Просто в вашей записи уберите эти слова, а в... 8.6.2012, 10:09 Cooll
set $path C:\Users\Евгений\De... 8.6.2012, 10:12 Zeleax Смотрите, в UOWiki указан следующий синтаксис:
set... 8.6.2012, 10:12 Cooll а deviation указывать в процентах ?
set $pa... 8.6.2012, 10:22 Zeleax Будьте внимательнее. Смотрите что вы написали:
а ... 8.6.2012, 10:24 Cooll Вроде пока ищет 8.6.2012, 10:32 Cooll теперь ищет нормально , но есть проблема , если 2 ... 8.6.2012, 17:18 zavas Вот это уже странно. Сценарий был тестирован на на... 9.6.2012, 1:28 Cooll оно находит через раз , бывает нормально находит о... 9.6.2012, 9:53 DarkMaster скорее всего просто сама цифра не находится. Т.е. ... 9.6.2012, 10:30 Cooll
скорее всего просто сама цифра не находится. Т.е.... 9.6.2012, 12:18 zavas Собственно сам сценарий
https://forum.uokit.com/in... 9.6.2012, 11:04 Cooll Ну так в чем у меня проблема ? 10.6.2012, 19:30 DarkMaster Собственно ничего шибко не изменилось...
Скорее вс... 10.6.2012, 21:04 EL-GReeN Как вариант искажение в картинках цифр при работе ... 10.6.2012, 23:57 DarkMaster Кстати сделайте обязательно скрин числа, которое н... 11.6.2012, 8:53 Zeleax Кстати, можно было усовершенствовать скрипт:
- для... 11.6.2012, 9:22 Cooll заливаю на залил , так как фотохостинги искажают с... 13.6.2012, 10:00 EL-GReeN
заливаю на залил , так как фотохостинги искажают ... 13.6.2012, 11:51 Cooll Настраивал финимедж минут 20 , и все получилось , ... 13.6.2012, 11:05 DarkMaster Что изменил то напиши. Нам интересно, кому-то помо... 13.6.2012, 11:10 Cooll изменил только в финдимедж процент совпадения , и ... 13.6.2012, 11:33 Cooll Сглаживание присутствует , без него рвет глаза ког... 13.6.2012, 15:13 DarkMaster
Можно. Именно так, как вы и поступили. Снизить то... 13.6.2012, 15:25 xolost Здасте, порекомендовали сюда пойти. Потому здесь з... 18.6.2012, 1:36 Zeleax для каждой цифры нужна всего лишь 1 картинка (если... 18.6.2012, 6:58 zavas Данный сценарий работает на основе оператора findI... 19.6.2012, 10:48 xolost Прошу прощения за задержку.
http://s2.hostingkarti... 19.6.2012, 12:27 Zeleax Нет же! Имеется в виду, что цифры (одни и теже... 19.6.2012, 12:31 xolost да это ясен красен одинаково...
я же писал выше
... 19.6.2012, 12:34 Zeleax ну а в в чем тогда вопрос? сделайте отдельную проц... 19.6.2012, 12:38 zavas Zeleax правильно говорит. Если хочешь для каждого ... 19.6.2012, 12:46 xolost )))
Эх...
беда в том, что я пока не представляю ч... 19.6.2012, 12:53 Zeleax 1) Открываем тему Полезные советы и смотрим кучу п... 19.6.2012, 12:56 xolost
1) Открываем тему Полезные советы и смотрим кучу ... 19.6.2012, 13:00 xolost Я понимаю, что очень легко вам сказать - да ты че,... 19.6.2012, 13:12 EL-GReeN
Я понимаю, что очень легко вам сказать - да ты че... 19.6.2012, 16:29 DarkMaster У нас в этом плане народ вредный =) Мы будем до по... 19.6.2012, 13:44 xolost Зачем тратить время на ловлю рыбы, если можно науч... 20.6.2012, 2:33 EL-GReeN
set $a findimage ($startX $startY ... 20.6.2012, 7:09 Zeleax Пилот может работает со строковыми переменными (... 20.6.2012, 7:04 xolost Ага, спасибо.
Доброе утро.
Ну что же.
Сами просил... 20.6.2012, 14:31 Zeleax а если после строки findimage вставить строку
msg... 20.6.2012, 14:36 xolost ох... тьфу...так.. понял косяк.. конечно же.. пото... 20.6.2012, 14:39 Zeleax на вопрос не ответили 20.6.2012, 14:43 xolost ну там было:
a = findimage (840 417 846 425 (C:... 20.6.2012, 14:47 Zeleax Окошко появляется: a = ляляля ? 20.6.2012, 14:54 DarkMaster Не сделана обработка, если картинка не была найден... 20.6.2012, 14:55 xolost
Окошко появляется: a = ляляля ?
Сначала a = лял... 20.6.2012, 15:03 EL-GReeN Ищет 1 раз в момент запуска:
set #startX 840
set #... 20.6.2012, 15:29 xolost 2 green
и в первом и во втором случаях ошибка в ст... 20.6.2012, 16:02 DarkMaster В первом случае не объявлена переменная set ... 20.6.2012, 17:10 EL-GReeN А разве это не объявление $a? по идее туда в ... 20.6.2012, 17:41 xolost
В первом случае не объявлена переменная set ... 20.6.2012, 17:41 EL-GReeN Конечно пилот старый вот и орет на новые функции) 20.6.2012, 17:46 xolost ёлки-маталки... понял... буду реинстал делать)) но... 20.6.2012, 17:48 DarkMaster
Какой нафиг инстал? О.о там просто ехе файл... 20.6.2012, 20:42 xolost
Какой нафиг инстал? О.о там просто ехе файл...
Д... 23.6.2012, 22:43 DarkMaster Ну для начала бы неплохо вывести, что содержится в... 23.6.2012, 22:58 xolost там пустое окно выскакивает...
Я вот думаю, может... 23.6.2012, 23:02 DarkMaster вполне возможно. вы кстати все так же не делаете к... 24.6.2012, 1:31 xolost под проверкой подразумевается вывод меседжа? 24.6.2012, 1:58 DarkMaster Кстати лучше испоьзовать строковую переменную ... 24.6.2012, 4:00 xolost Я извиняюсь. Крыша маленько едет... запутался и п... 25.6.2012, 3:42 xolost Так.
Во-первых, всем спасибо огромнейшее, и отдель... 26.6.2012, 17:23 zavas
отдельное преспасибо - Завасу за хорошую тему и ... 26.6.2012, 21:18 xolost Добрый день снова.
И вот интересный косякс вылез) ... 29.6.2012, 11:52 DarkMaster
Это сглаживание, на ХР оно у вас отключено. На ви... 29.6.2012, 12:20 zavas
Это сглаживание, на ХР оно у вас отключено. На ви... 29.6.2012, 13:43 DarkMaster Если в системе используется сглаживание шрифтов, т... 29.6.2012, 21:11 zavas Для себя решил это отключением сглаживания в win7.... 29.6.2012, 23:36 DarkMaster Ну смотря какой моник. Я сидя за 42 дюймовой дурой... 30.6.2012, 11:47 xolost нет нет нет.
Извините... но.. при чем тут сглажива... 30.6.2012, 15:54 Zeleax дайте ссылки на ваши 3 и 8 30.6.2012, 16:01 xolost Восьмерка:
http://s2.hostingkartinok.com/uploads/i... 30.6.2012, 16:28 Zeleax да, надо поменять порядок проверки цифр - проверят... 30.6.2012, 16:30
2 страниц 1 2 >
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0
|
|