Создание настольной игры AI


9

Я хочу написать настольную игру под названием «Окей», которая в основном популярна в Турции. http://en.wikipedia.org/wiki/Okey

Но у меня есть некоторые проблемы с ИИ.

Во-первых, позвольте мне объяснить игру ..

В игру играют 4 игрока.

В этой игре 106 плиток, из них 2 фальшивых джокера. Другие 104 плитки разделены на 4 цвета, как правило, зеленый, черный, синий и красный. Все цвета имеют два набора плиток. Набор содержит 13 плиток, которые пронумерованы последовательно от 1 до 13.

Каждый игрок запускает 14 тайлов (один старт 15 и начинается первым) и бросает один из самых нежелательных тайлов следующему игроку. Следующий игрок может получить эту плитку или другую плитку из стека в середине стола. Игра ведется против часовой стрелки ..

Цель этой игры - найти правильную последовательность из 14 плиток как можно скорее. Игрок может выровнять плитки по последовательным числам в одном и том же цвете до 13. Например, Зеленый 1, Зеленый 2, Зеленый 3. Здесь есть исключение, 1 может следовать за 13. Например, Красный 12, Красный 13 и Красный 1 - это действительный набор. Но Красный 13, Красный 1 и Красный 2 не действительны.

Или игрок может выровнять плитки по цветам в том же количестве. Например, Зеленый 1, Черный 1, Красный 1, Синий 1.

Каждый набор должен быть 3 или более плиток, чтобы быть действительным, и каждый из этого набора называется «Per». Менее 3 плиток не подходит для финиша. Действительный финишный набор может быть таким. G: зеленый, B: синий, R: красный, BL: черный G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

Последнее, что при запуске игры выбирается тайл для определения джокера (окей). Например, если вы выберете Blue 3; Синий 4 будет джокером (окей), и игрок может использовать эту плитку вместо любой плитки, которая нужна игроку, чтобы выиграть или завершить сет (за).

Конечно, эти правила являются общими правилами и обобщены для объяснения вопроса. Если вы можете читать по-английски, вы можете проверить эту ссылку для получения дополнительной информации http://tr.wikipedia.org/wiki/Okey или переведенной страницы с помощью Google Translate http://translate.google.com/translate?js=n&prev=_t&hl= ен и е = UTF-8 & компоновка = 2 & eotf = 1 & сл = тр & TL = еп & и = HTTP: //tr.wikipedia.org/wiki/Okey

Итак, какой алгоритм AI я могу использовать? Я искал минимаксную теорию и альфа-бета-обрезку. Но эти теории, как правило, касаются игры двух игроков, таких как шахматы или крестики-нолики.

Оригинальный вопрос находится в стеке потока: /programming/4419628/creating-a-board-game-ai


1
Вы можете использовать множество алгоритмов ИИ, поэтому «какой из них» является компромиссом дизайна (или, возможно, разработки). Вы хотите «идеальный» ИИ, который может «решить» игру (т.е. играть оптимально)? Или вам нужен «игровой» ИИ, который играет достаточно хорошо, чтобы не смущать себя, но достаточно слаб, чтобы его можно было победить (особенно если вы хотите несколько уровней сложности)? Или вы просто хотите «тупой» ИИ, который играет без логики, чтобы вы могли протестировать игру? Много вариантов, ни один из них не является правильным или неправильным.
Ян Шрайбер

Я думаю, вам понадобится алгоритм, разработанный специально для этой проблемы, хотя вы можете использовать различные методы / алгоритмы в нем. Вы можете получить хороший ответ на ai.stackexchange.com
Мэтью Читайте

@ Ян, я хочу, чтобы ИИ мог играть в саму игру приемлемо. Может быть позже я могу добавить уровни сложности. Так что мне нужна начальная точка. @ Матфей, ​​я добавлю туда свой вопрос. Спасибо вам всем.
Бахадир Арслан

Ой! Похоже, ai.stackexchange.com был закрыт, хотя это было бы идеальное место, чтобы спросить ... грустно.
bummzack

Хорошо известными многопользовательскими версиями minmax являются MaxN и Paranoid Search
Druzil

Ответы:


3

Если поменять местами плитки для карточек, описание игры звучит невероятно похоже на карточную игру Gin Rummy. Вы можете найти некоторые прямые ресурсы ИИ, выполнив поиск по этому поводу.

Один вариант для ИИ, который не зависит от количества игроков и может использоваться для создания разных личностей ИИ:

  1. Играйте в настольную игру, в идеале с друзьями, хотя вы можете играть во все руки самостоятельно, но с удобным компьютером и открытым Excel.
  2. Поговорите о том, что представляет собой ваш процесс мышления Будет несколько отдельных моментов, которые вы должны учитывать при принятии решения. Такие вещи, как «дает ли ненужный тайл набор для игры», «приблизить меня к набору» или «добавить в существующий набор».
  3. Затем, когда у вас есть список всех предметов, которые вы учитываете при принятии решения о том, какую плитку подбирать и какую плитку отбрасывать, начинайте создавать для них веса чисел на основе того, что для вас наиболее важно.
    1. Пример: для вас может быть в три раза важнее получить 3-ю плитку в последовательности, чем для получения 4-й плитки в существующей последовательности.
  4. Когда у вас есть все эти весовые коэффициенты для всех вещей, на которые вы смотрите при принятии решения, вы можете использовать Excel, чтобы рассчитать оценку для каждого действия. Таким образом, у вас есть рабочий лист, где каждая строка представляет выбор действия, а каждый столбец представляет решающий фактор. Если этот коэффициент верен для этого действия, вы умножаете его на вес, если этот фактор ложен, вы получаете ноль. Затем вы складываете все оценки, и ИИ выберет тот, который имеет наибольшее значение.
  5. Играть в игру с открытым Excel. Каждый ход смотрите, соответствует ли результат оценки выбранному вами результату. Если он не регулирует вес, основываясь на вашем мышлении, пока это не так. После нескольких игр ИИ должен играть в игру так же, как вы. Если вы постоянно играете с группой друзей с разным весом, у вас будут ИИ с разными личностями.

Затем вы можете контролировать сложность, не всегда выбирая вариант с самым высоким рейтингом. Чем ниже оценка, тем хуже решение.


Вот статья о создании ИИ для Джина Рамми. Это может оказаться полезным. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Тим Холт

Я посмотрю это как можно скорее. Спасибо @Tim Holt и @skerslake
arslan

Я также осмотрел бы стратегии Маджонг. Это не так тесно связано, но все же близко.
Лорен Печтел
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.