Страница 1 из 1

нужен алгоритм исскусственного интеллекта

Добавлено: Пн сен 17, 2007 23:55
Valeron
Нужен алгоритм исскусственного интеллекта для компа в коллекционной карточной игре типа MTG. Общие подходы. Есть у кого-нибудь соображения?

Добавлено: Вт сен 18, 2007 20:18
Valeron
Даю уточнение. Есть колода, состоящая из пяти мастей, по стихиям - огонь, вода, воздух, земля и некромантия. В каждой масти по 12 карт, каждая карта имеет уровень, который определяет затраты манны на вызов этой карты. Каждая карта имеет свои уникальные особенности.
Карты делятся на боевые еденицы(юниты) и заклинания(удары, оздоровление, гипноз и т.д.) При вызове боевой еденицы у игрока отнимается соответствующее количество манны соответствующей стихии и юнит занимает один из пяти слотов в шеренге. У юнита два численных показателя - хит-поинты (сколько жить осталось) и атака (наносимый противнику урон).
Манка каждого цвета прирастает каждый ход +1. За один ход игрок может разыграть в игру только одну карту, затем карты в шеренге наносят противнику удар, затем ход передается оппоненту. Одну и ту же карту игрок может выставлять до бесконечности, лишь бы манки хватало и были свободные слоты в шеренге (если это юнит).
В руке игрока может быть не более 20 карт. В руке игрока в каждой масти должно быть не менее 3 и не более 6 карт одной масти (стихии).
Надо алгоритм для компа что бы он мог строить свою тактику на пару ходов вперед, какую манну накапливать, а какой атаковать сразу.
Как вообще в карточных играх искуственный интеллект програмируется?

Добавлено: Ср сен 19, 2007 12:16
Spectre
Боюсь, что придётся все писать с нуля самому.

Единственный вариант облегчить себе жизнь IMHO найти на pc исходники готового открытого движка и драть с него идеи (что обычно самое сложное).

Добавлено: Ср сен 19, 2007 18:37
Valeron
Пока что я додумался до такого - на каждую карту вычисляется ее рейтинг, можно к примеру оттолкнуться от формулы R=Atak+Helth/2-Mana это для общего случая, но каждая карта имеет какой-нибудь бонус, например бьет по всем, это тоже можно как-нибудь численно выразить и экспериментально подобрать. Далее из пяти стихий (при случайном раскладе) в некоторых будут юниты помощнее, а в некоторых - послабее, надо сразу выделить одну или две стихии в которым манна будет накапливаться, а до тех пор изматывать противника в других стихиях. Есть еще юниты увеличивающие прирост манны - их надо по возможности сразу выставлять, но тоже с умом, например не ставить напротив сильного юнита противника. И как оценивать заклинания? Тоже выбор - будь здоров - 19 карт из 60, почти треть. Если Армагеддон можно по количеству урона сравнить с камнепадом, и по затратам манны, то сравнить их с лечением или проклятием - не представляю как, :) Точнее сам то я играю этими картами, но почему я ими играю - как я решаю когда их разыгрывать - загадка природы.
Но это все, если так можно выразиться, тактические заморочки, а самое главное - стратегия игры, например играть в защиту и воевать только молниями/армагеддонами/камнепадом ит.д. или валить гада сходу, начиная со слабых здоровьем но крепких в атаке юнитов...
Наконец - реакция на игрока - например замечено что он любит поставить что-нибудь помощнее + кучу лечилок - подкопить на глобальный БАБАХ и держать наготове ..... ну хрен знает, дальше моя фантазия буксует.

ЗЫ. Буду признателен за любые, даже самые бредовые идеи.

Добавлено: Чт окт 11, 2007 0:06
Transman
Потренировался бы лучше на кошках. тьфу, на чем нибудь попроще, а то сразу на MTG потянуло. Вот к примеру Arcomage есть.

Добавлено: Вс окт 14, 2007 19:46
Valeron
Transman писал(а):Потренировался бы лучше на кошках. тьфу, на чем нибудь попроще, а то сразу на MTG потянуло. Вот к примеру Arcomage есть.
На кошках, это надо полагать, в крестики-нолики? :D
Вообще-то MTG была приведена для примера, на самом деле конечная цель - игра Астрал, может попадалась? Хочется портировать на спек, добавить элемент deck-building, немного стратегического и немного ролевого элемента. Рисунки карт частью переконвертированы, частью перерисованы, готово больше половины. Хотелось бы доделать, а не бросить на полпути.
Arcomage скачаю, посмотрю, только что толку? Или есть алгоритм ИИ для игры Arcomage? Так не стесняйся! ЛЮБОЙ алгоритм исскуственного интеллекта интересует, хоть в подкидного дурака. Важен сам принцип.

Добавлено: Вт окт 16, 2007 21:48
Transman
А где на этот, Астрал посмотреть можно?

Добавлено: Ср окт 17, 2007 21:10
Valeron
Вот ссылка на их сайт http://www.astraltournament.com/
а могу и намылить, запакованный в зипе весит 6,3 метра. Единственное неудобство - английский язык, могу дать перевод если очень надо.

Добавлено: Чт окт 18, 2007 18:44
Transman
я как нибудь без перевода, а вот крэк какой или регистрилку в комплекте - не отказался-бы.

Добавлено: Чт окт 18, 2007 20:06
Valeron
Да хрен его знает, мне попалась или уже крэкнутая, или еще свободная версия. Могу закинуть тебе в мыло мой вариант. Файлов тут дохрена, может просто ехе-шник тебе кинуть, а ты заменишь. Короче давай спишемся. Мое мыло я тебе в личку кинул.

Добавлено: Чт окт 25, 2007 23:34
Transman
скачал версию 1.7 и кейген для 1.6 подошел :)
правда запустилась не с первого раза. вылетала при запуске боя без всяких сообщений.
Оно интересно, но достаточно сложно. имхо аркомэйдж проще в реализации. не знаешь, можно ли копаться в текстовых квестах из Космических рейнджеров 2? там аналогичная инра есть.

Добавлено: Пт окт 26, 2007 2:15
Transman
как выяснилось, можно. только ничего непонятно. надо разбираться. для этого нужен редактор квестов и сам квест. редактор на rangers.ru лежит, tge2 называется. а квест из игры надо дергать.

Добавлено: Сб окт 27, 2007 20:58
Valeron
Хм, а я в Космических рейнжерах квесты вообще не проходил, ну разве что "подай-принеси-догони-убей". А остальные квесты я игнорировал, я торговлей занимался да системы отбивал. Значит пропустил. Надо бы посмотреть что за квест такой интересный.

Добавлено: Пт ноя 02, 2007 17:00
Transman
тама турнир своеобразный, по своей реализации практически точная копия аркомага. Три ресурсопроизводителя, соответственно три материала, атаки, использующие эти материалы, цитадель, которую надо убить и силовое поле которое надо убить раньше.