Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как гаучить Ai играть в Дурака, выбор карты для хода 
:(
    Опции темы
asmdzen
Дата 16.4.2013, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: нет
Всего: 5



Привет всем! В общем ситуация такая, есть готовая игра в дурака, есть класс типа бот которому доступны все данные игры - карты на руках, карты в колоде, функционал для определения карт которыми можно ходить. Задача состоит в том чтобы определить наиболее предпочтительную карту для совершения текущего хода. Прошу совета как можно это дело более выгодно реализовать.

идеи: создавать древо всех возможных ходов на данном этапе, выбирать наиболее подходящий по каким-то критериям.

(не нащел как отредактировать название темы)

Это сообщение отредактировал(а) asmdzen - 16.4.2013, 15:30
PM MAIL   Вверх
dershokus
Дата 18.4.2013, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 7.8.2011

Репутация: 1
Всего: 1



 Теория игр? 
PM MAIL   Вверх
Lukkoye
Дата 18.4.2013, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 23.3.2013

Репутация: 1
Всего: 1



Тут есть масса вариантов, от продвинутых: типа использование генетических алгоритмов, до простейших, типа использования готовых техник-стратегий.

Я бы реализовал сначала простое: техники-стратегии, а уже потом, если ещё будет нужно - реализовывал бы сложное.


Стратегии: ну представь себе, что в карты играешь ты, а не компьютер. Каким образом ты выбираешь карты?

Если проанализировать принципы выбора в той или иной ситуации, то окажется, что таких ситуаций не так уж и много, и у них у всех есть свои критерии.

Например: 

Общая стратегия: вытягивать из противника сильные карты, что бы к концу игры он остался со слабыми. Эта задача разбивается на подзадачи:

1. В первую очередь избавляться от самых слабых карт.
2. По возможности копить козырей
3. Если на столе лежит много слабых карт - можно добить противника козырем, что бы противник нахапал слабых карт.
4. критерий слабости карты - количество карт, способных её побить.

и тд.

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

В качестве бонуса: прогноз карт на руках противника, шансы получить более сильную карту, и иметь на руках более сильный расклад.
Компьютер может пропасти отбой, и в концу игры  знать расклад игроков.

PM MAIL   Вверх
asmdzen
Дата 19.4.2013, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: нет
Всего: 5



Lukkoye, спасибо, нужен был взгляд извне )
отбой мне запоминать не надо, я и так вижу все карты.
стратегии у меня уже были, только на более низком уровне, типа дать карту которую он не сможет побить, но я не додумался о вытягивании больших карт и пихании слабых )
PM MAIL   Вверх
math64
Дата 20.4.2013, 08:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



А вот все карты ИИ видеть не должен - должен сам запоминать какие карты получили другие игроки, иначе нечестно будет.
Отбой лучше тоже запоминать - если будешь выделять отдельным модулем, сервер не должен выдавать информацию об отбое.
PM   Вверх
asmdzen
Дата 20.4.2013, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: нет
Всего: 5



math64, я не говорил что прога моя )
я пишу для нее бот, так получилось что у него есть доступ ко всему.
PM MAIL   Вверх
kolesnle
Дата 21.4.2013, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упертый сишник
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 22.3.2013

Репутация: нет
Всего: нет



Смотри про ИНС  smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.