Что нового

Обзор архитектуры ботов в EVE

bugaj

Знающий
Сообщения
140
Репутация
11
Вообщем нужна сегментация :'( Перебор датчиков на каждый случай это изврат. Кто нибудь видел где нибудь ботоводный форум где над этим думают?
 

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
bugaj [?]
Вообщем нужна сегментация
cry.gif
Перебор датчиков на каждый случай это изврат. Кто нибудь видел где нибудь ботоводный форум где над этим думают?
Так кто мешает выбрать значение датчика которое проверять не надо, т.е. проверять только нужные датчики. Главное выбрать правильную последовательность проверки.
 

skype4com

Новичок
Сообщения
11
Репутация
1
У меня каждый датчик по ситуации выдает числовое значение. Например: нет варпа - возврат числа 43, карго пустое - 29, карго наполовину - 62, карго полное - 10, и т.д. Суммирую все датчики и получаю некое число, по которому описана ситуация в case.

Вообще работаю над идеей клиент-серверного бота. Датчики и управление мышью - одно приложение, логика и принятие решений - другое. по моему легче будет калибровать и отлаживать после каждого патча игры :smile:
 

bugaj

Знающий
Сообщения
140
Репутация
11
Так кто мешает выбрать значение датчика которое проверять не надо, т.е. проверять только нужные датчики. Главное выбрать правильную последовательность проверки.

никто. Но насколько проще писать логику программы, если сразу считываются с экрана объекты, определяется, что это за байда такая и дальше решается что делать? Тут ведь вопрос еще и в том, а сколько у тебя этих датчиков? По моим ощущениям у меня и 100 будет не предел, и это ито только для начала, т.к. уже почти 50 есть, а еще копать и копать. надо же понимать мои масштабы :-D Поэтому перебор их в цикле меня быстро утомил, даж притом, что я сделал так что место где он был в последний раз запоминается и в следующий раз он находится почти мгновенно. Можно сделать иерархическую структуру, но боюсь заработать перелом мозга. Притом что утомился я перебирать датчики еще первого уровня, а что будет когда ниже пойдет. И утомляет не только скорость (после оптимизации и некоторого обучения она довольно высокая), но и сложность логики и отладки, поиски бага в большом зацикленном коде, в котором куча ответвлений вместо последовательного исполнения это вам не это.

Так что я пока решил делать преимущественно продвинутые макароны потом начну думать над следующим поколением. И было бы очень круто, если бы удалось сделать по принципу распознавания текста, которое я уже сделал, но опять же даже в нем при распознавании произвольных мест довольно часто очепятоки, чего только стоят сливающиеся 2 буквы в одну. А вот с объектами малость сложнее чем с текстом, хотя идеи есть....
 

lukoas

Знающий
Сообщения
16
Репутация
9
50 датчиков, это конечно здорово, но вот с быстродействием напряг. И чем больше датчиков, тем больше нагрузка, и PixelSearch уже начнет скрипеть, хотя тут есть обходной путь, у меня сейчас поиск в перделах экрана (1024х768) объекта размером 16х16 точек (маска цвета и погрешности) производится за 100мс.
В чистом виде ботов работающих по датчикам вообщето нет, поскольку некоторые датчики неявляются датчиками работающими с экраном, например теже самые таймеры, фактически это другой способ представления "макаронины"
Касательно OCR и сливающихся символов - необязательно искать символ '1' и следующий за ним символ '.', а можно искать символ '1.' ;)

ЗЫ: постепено перехожу на Python(ядро) + UML(для написания алгоритмов)
 

bugaj

Знающий
Сообщения
140
Репутация
11
50 датчиков, это конечно здорово, но вот с быстродействием напряг. И чем больше датчиков, тем больше нагрузка, и PixelSearch уже начнет скрипеть, хотя тут есть обходной путь, у меня сейчас поиск в перделах экрана (1024х768) объекта размером 16х16 точек (маска цвета и погрешности) производится за 100мс.
В чистом виде ботов работающих по датчикам вообщето нет, поскольку некоторые датчики неявляются датчиками работающими с экраном, например теже самые таймеры, фактически это другой способ представления "макаронины"
Касательно OCR и сливающихся символов - необязательно искать символ '1' и следующий за ним символ '.', а можно искать символ '1.'

ЗЫ: постепено перехожу на Python(ядро) + UML(для написания алгоритмов)

а я уже давно перешел. 50 датчиков на автоите я бы и не дождался когда опросятся. Я сделал поиск любых картинок в любой картинке, простым сравнением, так что если искать во всем окне да мощную картинку, то довольно задумчиво. Просто надоело изобретать и сделал по топорному, чтобы уже хотя бы наконец что то сделать. А что касается букав, у меня же сначала делается сегментация, т.е. в сегмент попадают символы разделенные фоном. Соответственно если буквы слились, то они попадают в 1 сегмент, и он же становится шаблоном автоматически. Т.к. у меня все непонятное сразу преобразуется в шаблон и записывается в базу, остается только приписать имя объекта. Т.е. я не ищу картинку с цифрой '1.'. Я фильтрую изображение до состояния чернобелого по определенным правилам и все что черное это объекты, белое фон, а потом ищу эти объекты в базе. Так и выходит, что если 2 буквы слились то это 1 объект.

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

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
Если 2 буквы сливаются в одну - проверяй их шириной. Если больше заданного - значит нужно разделение или новое сканирование этой области
 
Верх