Сейчас 11:57:51 Понедельник, 13 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 4 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [НАРАБОТКА] Простой пример ИИ
[НАРАБОТКА] Простой пример ИИ
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 секунды, юзай так и не ошибешься. Можно составить бд на спеллы, в которую заносить кд, загружать при использовании спелла (для этого в родитель просто пишем ид спелла, а на ключ пишем кд на каждом уровне) и запускать таймер, по истечении которого делать бульку (на проверку в кд ли спелл) истинной. Вроде все

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

_Nerevar_Дата: Среда, 14 Декабря 2011, 23:08:05 | Сообщение # 94
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
Уделяется ли у вас много внимания добиванию ботом крипов?

// Если выложить карту-аос в проектах много срача будет?
 

Ty3uKДата: Среда, 14 Декабря 2011, 23:09:31 | Сообщение # 95
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Честно? Да, аос уже всем надоел. Но выложи, мне очень интересно оценить (так как я понял, что ты хороший кодер)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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.
редактирую посты! ВСЕ!
 

Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [НАРАБОТКА] Простой пример ИИ
  • Страница 4 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz