Я хочу написать настольную игру под названием «Окей», которая в основном популярна в Турции. 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
источник
Ответы:
Если поменять местами плитки для карточек, описание игры звучит невероятно похоже на карточную игру Gin Rummy. Вы можете найти некоторые прямые ресурсы ИИ, выполнив поиск по этому поводу.
Один вариант для ИИ, который не зависит от количества игроков и может использоваться для создания разных личностей ИИ:
Затем вы можете контролировать сложность, не всегда выбирая вариант с самым высоким рейтингом. Чем ниже оценка, тем хуже решение.
источник