|
|
|
|
[НАРАБОТКА] Простой пример ИИ
|
|
lawson | Дата: Воскресенье, 11 Декабря 2011, 02:39:15 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Короче, не терпится вам показать свой новый, сильно переделанный ИИ, который недавно закончил. Конечно, он не идеальный, так как я пытался выжать из себя все, что знаю про ИИ, его поведение и строение. Сама карта - это клон Доты, я не ставил целью создать какую-то конкурентноспособную карту, я просто делал ИИ, и поэтому практически всех героев, предметы и скиллы взял из Доты, за это, пожалуйста, не бить. Я хочу, чтобы вы просто оценили ИИ, к тому же карта не закрытая, если что интересно - посмотреть прошу. Со временем я буду совершенствоваться и доделывать ИИ по мере изучения кода и самого ИИ, но на данный момент это лучшее, что у меня получилось. Прощу оценить, готов к любым комментариям. Думаю, для тех, кто часто играет в Доту будет легко разобраться, что к чему. Если какие-то баги или еще чего - пишите. А для опытных кодеров типа дуосов, фкофов - лучше код не смотреть, есть пара утечек, я их со временем уберу, так как это просто рабочая версия пока. Сама карта.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Воскресенье, 11 Декабря 2011, 15:28:42 |
|
|
|
_Nerevar_ | Дата: Среда, 14 Декабря 2011, 22:13:32 | Сообщение # 76 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Видимо ваш спор о кд заключается в том что один не так понял,другой не так написал и понеслась... Я например когда отдаю боту приказ атаковать\кастовать скил я его выключаю на некоторое время(как бы дать ему его выполнить - на каст заклинания среднее время анимы 0.6 сек - в это время бот не делает никаких вычислений а просто выполняет отданный последним приказ) Допустим надо убежать - если есть скил и мана,значит отдаём приказ использовать скил - выключаю на 0.6 - он использует скил,мана тратится,скил уходит в кд - но как проверить использовал ли он скил и следует ли при следующем такте таймера учитывать скил как возможную часть побега? Можно это решить двумя способами - либо вести таймеры для кд скилов,либо иметь в хэше у каждого юнита название последней скастованной магии - значит если через 0.6 сек. скил не был скастован по каким то причинам(не хватает маны,сало висит,стан висел) - значит удаляем его на некоторое время из списка возомжностей для побега и бежим обычным способом(то бишь по старинке пешкодралом). Вроде мысль не потерял
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 22:18:26 | Сообщение # 77 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Laonda) т.к. действия происходят за доли секунды Нет там действия происходят с периодом. Что там еще интересно, не знаю как вам, но почему то предметы может собирать только один бот. Тоесть если подходят покупать предметы два бота то сначала покупает первый а после него второй, с чем это связяно не понимаю. В .62AI доте такое есть.Добавлено (14 Декабрь 2011, 22:18:26) ---------------------------------------------
Quote (_Nerevar_) Можно это решить двумя способами - либо вести таймеры для кд скилов,либо иметь в хэше у каждого юнита название последней скастованной магии - значит если через 0.6 сек. скил не был скастован по каким то причинам(не хватает маны,сало висит,стан висел) - значит удаляем его на некоторое время из списка возомжностей для побега и бежим обычным способом Ну практически сказал как я. Вот это я ему и доказывал, что нужно делать с кд. Только у тебя видно более оригинальный подход, я про удаление из списка возможных к использованию.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 22:18:35 | Сообщение # 78 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| На каст стабильно уходит .76 секунды, юзай так и не ошибешься. Можно составить бд на спеллы, в которую заносить кд, загружать при использовании спелла (для этого в родитель просто пишем ид спелла, а на ключ пишем кд на каждом уровне) и запускать таймер, по истечении которого делать бульку (на проверку в кд ли спелл) истинной. Вроде все
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 22:22:01 | Сообщение # 79 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| _Nerevar_, Вот где ты был раньше, я целый год сам искал решения проблем с ИИ, долбился головой об стену, вообще входил в ступор, только сейчас добился кое-какого успеха. А у тебя есть карты с уже готовым ИИ. Хотелось бы взглянуть.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
_Nerevar_ | Дата: Среда, 14 Декабря 2011, 22:22:16 | Сообщение # 80 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Наверное одновременная работа функции покупки для большого кол-ва героев тормозит вар,хотя наврядли
Ты не понял видимо принцип сам сборки
Удаляем все предметы по 100% стоимости=получаем ПУСТЫЕ(ни одного предмета(!)) слоты и кучу денег Обращаемся к функции,которая за текущие деньги покупает определённый заранее набор предметов(будь то части сборок или сами сборки,зеля или свитки) В итоге получаем инвентарь бота,заполненный вещами,которые соответствуют его текущим деньгам. То какими именно вещами на текущие деньги будет он заполнен зависит от списка,заложенного кодером в функцию(там уже и хитрые условия).
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 22:27:34 | Сообщение # 81 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (_Nerevar_) То какими именно вещами на текущие деньги будет он заполнен зависит от списка,заложенного кодером в функцию(там уже и хитрые условия). Не видать мне далеко до тебя, я все еще не понимаю схемы действий, что именно - я писал постами ранее. Да я помимаю, что это очень полезно использовать при начальной сборке, когда бот только начинает собирать сборные предметы, но дальше я не вижу целесообразности использования твоей схемы, когда бот уже собрал большую часть сборных предметов.
Добавлено (14 Декабрь 2011, 22:27:34) --------------------------------------------- Quote (Ty3uK) Можно составить бд на спеллы, в которую заносить кд, загружать при использовании спелла (для этого в родитель просто пишем ид спелла, а на ключ пишем кд на каждом уровне) и запускать таймер, по истечении которого делать бульку (на проверку в кд ли спелл) истинной Спс Тузик , идея хорошая и приминимая, но пока что не собираюсь делать систему скилов.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 22:27:52 |
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 22:27:40 | Сообщение # 82 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Quote (lawson) Условие (если спелл невидимость не кдшиется) то использовать спелл, иначе (если спелл невидимость уже был приминен и кдшиется) то бот делает другие дейтсвия: отдать конфеты. Дело в том что ты можешь не ставить условия. и не проверяя кд приказать использовать скилл. Code В итоге скилл если не под кд то заюзается. если идет кд то скилл не заюзается и у нас заберут конфеты. Вот то что выделено кодом - то без всяких условий работает так не надо тут ничего придумывать.
А про предметы забей. Ты просто пытаешься совместить желаемое и действительное, приравнять их, а истинный путь программиста ИМХО - выдавать действительное за желаемое, при том что действительное не равно желаемому.
Просто дали совет с упращением, а ты используешь упращение + свой метод. т.е. пытаешься состыковать в мозгу 2 разных метода. В случае, который мы тебе объясняем предметы удаляются и не возвращаются потом. Вместо них по триггеру ищется нужная сборка и те 6 предметов чтов сборке и даются герою либо не 6, а 5 3 или 4, которые относятся к текущему диапазону голды.
Читерства тут никакого нет если схемы составить логично и правильно а не давать сначала 5 сапогов а потом 6 рапир.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
_Nerevar_ | Дата: Среда, 14 Декабря 2011, 22:29:13 | Сообщение # 83 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Эти все принципы создания бота были мной придуманы и записаны на листик схематично во время безделия на практике\парах(как и принцип некоторых специфических функций).На написание одних только общих используемых в условиях функций уже ушло 800+строк,реализован была функция "0" состояния - никаких действий не выполняется,бот лишь бегал на базу\дорогу,добивал здания чужие\свои,добивал крипов своих\чужих(довольно успешно,но двигался с проблемами),всё было заточено под координаты.Далее я поменял ланд на 90 градусов(было сверху вниз 2 дороги,стало слева направо 3,в итоге теперь надо переписать 15% функций необходимых для движения).Пока выпускал версию 1.0 и выпилил весь код ии в отдельный файл текстовый за временной ненадобностью и угасом интереса. Найдя же вашу тему интерес появился вновь.Пока не допилю хотя бы это нулевое состояние - не буду выкладывать.
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 22:31:29 | Сообщение # 84 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Laonda) пытаешься состыковать в мозгу 2 разных метода. Вот это точно, я уже думать не могу мозг разрывается.
Добавлено (14 Декабрь 2011, 22:31:29) --------------------------------------------- Quote (_Nerevar_) ,всё было заточено под координаты Вот чего я не хотел в своем ИИ, я не хотел зависимости бота от расположения той или иной точки. Поэтому я ввел для координации движения юнитов которые были вокруг ботаи условия по которым координировал его действия. Ну а как вообще ИИ? Бред, эт можно сказать мой первый и единственный ИИ да и опыт в создании его.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 22:34:14 |
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 22:38:53 | Сообщение # 85 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Я лично считаю что координаты важны только для убежищ, магазинов, рун т.е. статичных регионов. А так полностью согласен с Лавсоном и тоже собираюсь отталкиваться от окружения.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 22:43:15 | Сообщение # 86 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (_Nerevar_) Пока не допилю хотя бы это нулевое состояние - не буду выкладывать. С удовольствием сыграл бы, да научиться не помешало бы. А то мы с вами как люди говорящие на разных языках, у каждого свои методы создания ИИ. Хех
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 22:43:29 | Сообщение # 87 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| хмм дак а для чего ещё их можно использовать так или иначе мы и проверяя окружения ведь юзаем координаты так что в любом случае все в координатах.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
_Nerevar_ | Дата: Среда, 14 Декабря 2011, 22:44:25 | Сообщение # 88 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Ну у меня как бы идёт привязка координаты-здание - т.е. если жив турик 4 то идём к его координатам,если он мертв то проверяем 3 и т.д.Это мой способ - ибо через регионы раково=/А просто через юнитов недостаточно функциональности - допустим надо идти через хитрый маршрут?
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 22:45:59 | Сообщение # 89 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Laonda) так что в любом случае все в координатах. Имеется ввиду что юниты дают боту понять где он, что он делает, что его окружает, куда ему идти. В общем у меня тоже свои методы.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 22:48:06 |
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 22:55:28 | Сообщение # 90 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Ну здесь я Неревара поддерживаю. Добавлено (14 Декабрь 2011, 22:55:28) --------------------------------------------- Знает кто хорошего рельефщика или где можно найти такого))
Яб может даже за платно нанял.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 22:58:08 | Сообщение # 91 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Laonda) Знает кто хорошего рельефщика или где можно найти такого Зайди в раздел ландшафтинг. Создай темку с просьбой сделать ланд, тебя пошлют в биржу труда, ты не обращай внимания. Или зайди в биржу труда в разделе Ваши проекты, там полистай биржу найдешь ландера, выбор большой.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 22:59:23 |
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 23:02:04 | Сообщение # 92 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| не могу найти биржу труда
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 23:03:24 | Сообщение # 93 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| warcraft3ft.info/forum/26-26973-1
|
|
|
|
_Nerevar_ | Дата: Среда, 14 Декабря 2011, 23:08:05 | Сообщение # 94 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Уделяется ли у вас много внимания добиванию ботом крипов?
// Если выложить карту-аос в проектах много срача будет?
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 23:09:31 | Сообщение # 95 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Честно? Да, аос уже всем надоел. Но выложи, мне очень интересно оценить (так как я понял, что ты хороший кодер)
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 23:12:03 | Сообщение # 96 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (_Nerevar_) Если выложить карту-аос в проектах много срача будет Действительно, в проектах полный беспредел. Я тоже бы взглянул на ИИQuote (_Nerevar_) Уделяется ли у вас много внимания добиванию ботом крипов Я в одном из условий сделал такое действие выглядит криво не всегда работает, в общем нет не много.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 23:21:49 | Сообщение # 97 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| У меня жанр арена, там контролю вообще внимания не уделяется.
Написал в бирже труда что нужен дизайнер/художник/рельефщик и не только для варика. )) к моему счастью там вродь флудить запрещено)
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
_Nerevar_ | Дата: Среда, 14 Декабря 2011, 23:28:01 | Сообщение # 98 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Я тоже бы взглянул на ИИQuote Я же говорю что пока не переделаю им ориентиры и не доделаю их базовые обязанности я их не стану вводить Завтра возможно посижу с вашим форматированием и оформлю тему... Я просто использую при добивании крипов приближённое значение атаки(основной атрибут+16(базовая атака в РО)+атака от предметов через бд)*0.95) Так как добивание крипов - один из основных аспектов где ии не только может соревноваться с человеком(при хорошей организации),но в некоторых случаях и превосходить его Добавлено (14 Декабрь 2011, 23:28:01) ---------------------------------------------
Quote Я тоже бы взглянул на ИИ Я же говорю что пока не переделаю им ориентиры и не доделаю их базовые обязанности я их не стану вводить Завтра возможно посижу с вашим форматированием и оформлю тему...
Я просто использую при добивании крипов приближённое значение атаки(основной атрибут+16(базовая атака в РО)+атака от предметов через бд)*0.95) Так как добивание крипов - один из основных аспектов где ии не только может соревноваться с человеком(при хорошей организации),но в некоторых случаях и превосходить его
|
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 23:29:17 | Сообщение # 99 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Quote (_Nerevar_) 0.6 сек - в это время бот не делает никаких вычислений ага вот тут похоже и кроется необходимость вычисления кд, чтоб команда атаковать/двигаться не сбила каст.
Но почему бы не ввести логическую переменную которая просто говорила бы о том, что герой кастует и его не кантовать:
Юнит начинает применять способность
и если это бот то в логическую с его индексом записываем труе и в триггере с другими действиями просто проверим кастует он или нет на данный момент.
Когда завершает применение способности снова вписываем лож Ну или наоборот не суть.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 23:31:01 | Сообщение # 100 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (_Nerevar_) но в некоторых случаях и превосходить его А как тебе в доте добивание, по мне так очень даже осмысленное.Добавлено (14 Декабрь 2011, 23:31:01) ---------------------------------------------
Quote (Laonda) Но почему бы не ввести логическую переменную которая просто говорила бы о том, что герой кастует и его не кантовать: Как сказал Тузик там про время каста, у меня таймер не падает ниже 1 секунды, ботам хватает времени кастовать.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
|
|
|
|
|
|
|