|
Сценарий поиска нескольких ресурсов, С интерфейсом |
|
|
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: любое значение должно быть типа имейдж.
|
|
|
|
|
  |
Сообщений в этой теме
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 WKnight мне достаточно хорошо известно, насколько сложны д... 19.6.2012, 13:59 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 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 >
13 чел. читают эту тему (гостей: 13, скрытых пользователей: 0)
Пользователей: 0
|
|