7


4

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

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

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

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

2 Answer


1


Легкое начало может быть сделано с использованием алгоритма Монте-Карло. Вам просто нужно иметь возможность генерировать движения в случайном порядке.

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

Это легко реализовать и может быть наравне с более сложными алгоритмами. Я сделал это для Nine Men’s Morris, и MC был почти таким же сильным, как альфа-бета (в основном оба играли одинаково, пока алгоритм MC не допустил ошибку, что он сделает рано или поздно).

Взгляните на this article метод Монте-Карло для игры в Го.


0


Вы можете использовать max ^ n или параноидальные алгоритмы.