|
|
|
|
[НАРАБОТКА] Простой пример ИИ
|
|
lawson | Дата: Воскресенье, 11 Декабря 2011, 02:39:15 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Короче, не терпится вам показать свой новый, сильно переделанный ИИ, который недавно закончил. Конечно, он не идеальный, так как я пытался выжать из себя все, что знаю про ИИ, его поведение и строение. Сама карта - это клон Доты, я не ставил целью создать какую-то конкурентноспособную карту, я просто делал ИИ, и поэтому практически всех героев, предметы и скиллы взял из Доты, за это, пожалуйста, не бить. Я хочу, чтобы вы просто оценили ИИ, к тому же карта не закрытая, если что интересно - посмотреть прошу. Со временем я буду совершенствоваться и доделывать ИИ по мере изучения кода и самого ИИ, но на данный момент это лучшее, что у меня получилось. Прощу оценить, готов к любым комментариям. Думаю, для тех, кто часто играет в Доту будет легко разобраться, что к чему. Если какие-то баги или еще чего - пишите. А для опытных кодеров типа дуосов, фкофов - лучше код не смотреть, есть пара утечек, я их со временем уберу, так как это просто рабочая версия пока. Сама карта.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Воскресенье, 11 Декабря 2011, 15:28:42 |
|
|
|
Hexing | Дата: Воскресенье, 11 Декабря 2011, 07:51:21 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| без скринов нет не малейшого желания качать(несмотря на их бесполезность), а также ненавижу доту, поэтому 100% качать не буду сделал бы ИИ для мили карт или для своей карты какойнибудь, взглянул бы
|
|
|
|
Diabfall | Дата: Воскресенье, 11 Декабря 2011, 11:10:44 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| Посмотрел. Выбрал режим 3х3. Мои боты хз почему сразу ломанулись по одной линии.) Вообщем поиграл минут 8. Если сравнивать с Дотовским ИИ, то твой где-то в версии 6.45, что в принципе норм.
Про код. Глянул, что ему конца и края не видно, поэтому не стал утруждать себя поиском логической последовательности.
|
|
|
|
lawson | Дата: Воскресенье, 11 Декабря 2011, 13:12:38 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Diabfall) Глянул, что ему конца и края не видно, поэтому не стал утруждать себя поиском логической последовательности. Правильно , я уже сам в нем путаюсь.Quote (Diabfall) боты хз почему сразу ломанулись по одной линии Исправим.Добавлено (11 Декабрь 2011, 13:12:38) ---------------------------------------------
Quote (Hexing) без скринов нет не малейшого желания качать Друг я не заставляю.Quote (lawson) я не ставил целью создать какую - то конкурентно способную карту, я просто делал ИИ и поэтому практически всех героев, предметы и скилы взяты из доты НУ извини тогда.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Hexing | Дата: Воскресенье, 11 Декабря 2011, 13:20:27 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (lawson) Друг я не заставляю. без проблем
Сообщение отредактировал Hexing - Воскресенье, 11 Декабря 2011, 13:20:50 |
|
|
|
Ty3uK | Дата: Вторник, 13 Декабря 2011, 12:35:22 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| lawson, Code call DisplayTextToForce(bj_FORCE_ALL_PLAYERS, "You can choose any Hero from markets " + " and you can write -gold, -lvlup, -kill") зачем? Code call DisplayTextToPlayer(GetLocalPlayer(), 0., 0., "You can choose any Hero from markets " + " and you can write -gold, -lvlup, -kill") еще и cjass пошел юзать
Сообщение отредактировал Ty3uK - Вторник, 13 Декабря 2011, 12:37:22 |
|
|
|
SirNikolas | Дата: Вторник, 13 Декабря 2011, 12:41:53 | Сообщение # 7 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Мда.Quote (Ty3uK) еще и cjass пошел юзать Здесь-то он зачем? Сейчас скачаю, попробую в чем-нибудь разобраться.
|
|
|
|
Ty3uK | Дата: Вторник, 13 Декабря 2011, 12:43:06 | Сообщение # 8 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| SirNikolas, хз, но вставки разного кода типа Code l = 6 //some code// set l = 3 ///some code// l-- цель такого "комбинирования" я не понимаю
|
|
|
|
lawson | Дата: Вторник, 13 Декабря 2011, 12:47:58 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Ty3uK) цель такого "комбинирования" я не понимаю Тузик ты логическую цепочку когда в коде найдешь, тогда и поймешь зачем мне надо чтобы цикл начинался с 3. ОК?Quote (SirNikolas) Здесь-то он зачем? Ну так как я еще не привык к сжасс, (не давно скачал сборку жнпг с поддержкой сжасса) я еще не полностью его использую, а только в циклах и то только в тех которые писал после портирования на новую сборку. не надо к никчему придиратся я же написал , это пока что просто рабочая версия, может когда приеду на выходных начну оптимизацией заниматся. Тузик а вот ты попробуй не зная что делаешь делать правильно. Я ИИ делаю сам, парралельно изучая жасс, ни кто мне не помагает, ни где нет наработок даже примеров, а теперь попробуй сразу сделать все идеально.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Вторник, 13 Декабря 2011, 12:57:19 |
|
|
|
Ty3uK | Дата: Вторник, 13 Декабря 2011, 12:50:29 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| lawson, и пробовал, и что? ты не понял, я про способы задания значений переменным. Сначала обычный жасс2, потом cjass (задание без приставки set), а после снова cjass (декремент --). Юзал бы уже что-то одно
Я учусь писать ИИ, пока паскудно, но что поделать. Я тебя понимаю, так что тут смысла выступать нет
Сообщение отредактировал Ty3uK - Вторник, 13 Декабря 2011, 12:51:26 |
|
|
|
lawson | Дата: Вторник, 13 Декабря 2011, 12:52:59 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Ty3uK) GetLocalPlayer() Да теперь я знаю это, но когда я писал код, еще не знал что такое локал плеер.
Добавлено (13 Декабрь 2011, 12:52:59) --------------------------------------------- Quote (Ty3uK) Юзал бы уже что-то одно Я сжаас в онсновноv не использую, так как привык уже писать call, set , function мне сжасс удобен только в циклах i++, i--
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Вторник, 13 Декабря 2011, 12:54:08 |
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 13:54:30 | Сообщение # 12 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Вовремя я на эту тему наткнулся) Собсно ничего не зная в области ИИ я хотел двигаться своим путем и буду им двигаться, но сперва все же изучу твой метод.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 13:59:07 | Сообщение # 13 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Laonda, там полно енужных конструкций из cJass, поэтому ориентируйся с умом
Сообщение отредактировал Ty3uK - Среда, 14 Декабря 2011, 13:59:17 |
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 14:07:06 | Сообщение # 14 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Quote (Ty3uK) Laonda, там полно енужных конструкций из cJass, поэтому ориентируйся с умом
>_< я произвожу впечатление глупого человека с первых же написанных строк?)) Хотя и вправду лишь глупец станет уверять, что он умён =\
Я не воровать собираюсь и даже не собираюсь брать его код, я вообще постараюсь сделать всё на GUI + CS Просто для меня главная задача упростить триггеры изучения скиллов и их использования. Я впервые за ИИ берусь и пожалуй лишь это для меня пока не разведанно + я хочу узнать можно ли использовать редактор ИИ и модифицировать исходный файл редактора таким образом, чтоб увеличить древо изучения скиллов до 450ого уровня)
Я из тех, кто зная чуть более чем просто основы jass не горит фанатичной идеей устранения всевозможных утечек, считаю что на современных компьютерах они не заметны (если избегать критичных) и их устранение лишь отнимает наше дорогое время(хотя функции BJ я не люблю(( и со временем всеравно их переписываю).
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 14:08:05 | Сообщение # 15 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Laonda, я и не говорил, что ты глупый. Но скажу сразу - идея писать ИИ на гуи - это глупо, брось
|
|
|
|
Laonda | Дата: Среда, 14 Декабря 2011, 14:15:30 | Сообщение # 16 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| не охота начинать холли вары)) Но я знаю и jass и свои функции на jass Писать умею. Да и читать умею, а вот вы видимо не разглядели моего текста до конца.
Quote (Laonda) на GUI + CS Приведите хоть 1 довод, почему это глупо.Добавлено (14 Декабрь 2011, 14:15:30) --------------------------------------------- Немного пораскинул мозгами и уверен что даже только на GUI можно сделать ИИ если очень захотеть и не скупиться на триггеры атак и побегов при помощи скиллов.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 14:41:26 | Сообщение # 17 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Laonda, глупо, потому что гуи имеет кучу функций типа Code function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group local group g = CreateGroup() call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter) call DestroyBoolExpr(filter) return g endfunction не обнулена группа - утечка Code function TriggerRegisterEnterRectSimple takes trigger trig, rect r returns event local region rectRegion = CreateRegion() call RegionAddRect(rectRegion, r) return TriggerRegisterEnterRegion(trig, rectRegion, null) endfunction не обнулен регион. И совсем верх идиотизма Code function SaveUnitHandleBJ takes unit whichUnit, integer key, integer missionKey, hashtable table returns boolean return SaveUnitHandle(table, missionKey, key, whichUnit) endfunction А так да, можно юзать
|
|
|
|
SirNikolas | Дата: Среда, 14 Декабря 2011, 14:46:00 | Сообщение # 18 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Ty3uK) не обнулен регион. И что? Он существует всю игру, так что не принципиально (по сравнению с первой функцией).Quote (Laonda) Немного пораскинул мозгами и уверен, что даже только на GUI можно сделать ИИ, если очень захотеть и не скупиться на триггеры атак и побегов при помощи скиллов. Теоретически, можно, только как раз не через спам триггерами, а через грамотно поставленные условия.
lawson, по поводу cJASS - не все станут его ставить только из-за того, что тебе удобнее писать i++. Если бы все было на нем сделано (причем читабельно) - тогда другое дело.
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 14:47:32 | Сообщение # 19 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| SirNikolas, все дело в том, что многие юзают несколько раз функции с событием "юнит вошел в регион". И сколько тогда этих регионов будет?
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 14:49:31 | Сообщение # 20 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Laonda) но сперва все же изучу твой метод. даже зная жасс, ты всеравно долго будешь искать логическую последовательность действий в моем ИИ, мог бы просто меня попросить помочь объяснить. Я для этого и выложил карту сюда.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 14:52:43 |
|
|
|
SirNikolas | Дата: Среда, 14 Декабря 2011, 14:49:54 | Сообщение # 21 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| По одному на каждое событие. А что в этом плохого? Они же при ините создаются. К тому же, как бы ты сделал на JASS без регионов?
|
|
|
|
lawson | Дата: Среда, 14 Декабря 2011, 14:54:01 | Сообщение # 22 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Laonda) триггеры изучения скиллов и их использования Если ты только за этим, моя наработка тебе не поможет.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 14:58:13 | Сообщение # 23 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| SirNikolas, но он же локальный и не обнуляется. или я туплю?
|
|
|
|
SirNikolas | Дата: Среда, 14 Декабря 2011, 15:04:51 | Сообщение # 24 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Обнулять критически важно то, что уничтожается, а он висит всю игру. И срабатывает только при инициализации, один раз. Если бы он был обнулен, было бы лучше, но и так ты практически ничего не теряешь.
|
|
|
|
Ty3uK | Дата: Среда, 14 Декабря 2011, 15:05:32 | Сообщение # 25 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| SirNikolas, все, я понял. Спасибо за разъяснение
|
|
|
|
|
|
|
|
|
|
|