![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: нет Всего: 5 |
Привет всем! В общем ситуация такая, есть готовая игра в дурака, есть класс типа бот которому доступны все данные игры - карты на руках, карты в колоде, функционал для определения карт которыми можно ходить. Задача состоит в том чтобы определить наиболее предпочтительную карту для совершения текущего хода. Прошу совета как можно это дело более выгодно реализовать.
идеи: создавать древо всех возможных ходов на данном этапе, выбирать наиболее подходящий по каким-то критериям. (не нащел как отредактировать название темы) Это сообщение отредактировал(а) asmdzen - 16.4.2013, 15:30 |
|||
|
||||
dershokus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 7.8.2011 Репутация: 1 Всего: 1 |
Теория игр?
|
|||
|
||||
Lukkoye |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 23.3.2013 Репутация: 1 Всего: 1 |
Тут есть масса вариантов, от продвинутых: типа использование генетических алгоритмов, до простейших, типа использования готовых техник-стратегий.
Я бы реализовал сначала простое: техники-стратегии, а уже потом, если ещё будет нужно - реализовывал бы сложное. Стратегии: ну представь себе, что в карты играешь ты, а не компьютер. Каким образом ты выбираешь карты? Если проанализировать принципы выбора в той или иной ситуации, то окажется, что таких ситуаций не так уж и много, и у них у всех есть свои критерии. Например: Общая стратегия: вытягивать из противника сильные карты, что бы к концу игры он остался со слабыми. Эта задача разбивается на подзадачи: 1. В первую очередь избавляться от самых слабых карт. 2. По возможности копить козырей 3. Если на столе лежит много слабых карт - можно добить противника козырем, что бы противник нахапал слабых карт. 4. критерий слабости карты - количество карт, способных её побить. и тд. В конечном счете, важно просто понять принцип выигрышной стратегии самой игры в дурака. И реализовать её. Ну а там, как карта ляжет. Во всяком случае играть компьютер сможет не хуже, чем при стандартной игре не особо вникающих в игру людей. В качестве бонуса: прогноз карт на руках противника, шансы получить более сильную карту, и иметь на руках более сильный расклад. Компьютер может пропасти отбой, и в концу игры знать расклад игроков. |
|||
|
||||
asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: нет Всего: 5 |
Lukkoye, спасибо, нужен был взгляд извне )
отбой мне запоминать не надо, я и так вижу все карты. стратегии у меня уже были, только на более низком уровне, типа дать карту которую он не сможет побить, но я не додумался о вытягивании больших карт и пихании слабых ) |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
А вот все карты ИИ видеть не должен - должен сам запоминать какие карты получили другие игроки, иначе нечестно будет.
Отбой лучше тоже запоминать - если будешь выделять отдельным модулем, сервер не должен выдавать информацию об отбое. |
|||
|
||||
asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: нет Всего: 5 |
math64, я не говорил что прога моя )
я пишу для нее бот, так получилось что у него есть доступ ко всему. |
|||
|
||||
kolesnle |
|
|||
![]() Упертый сишник ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 22.3.2013 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |