Створення настільної гри AI


9

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

Але у мене є деякі проблеми з ШІ.

Дозвольте мені пояснити гру ..

У гру грають 4 гравці.

У цій грі 106 плиток, 2 з них - підроблений жартівник. Інші 104 плитки розділені на 4 кольори, як правило, зелений, чорний, синій та червоний. Усі кольори мають два набори плитки. Набір ise містить 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

Останнє, коли починається гра, плитка вибирається для визначення джокера (okey). Наприклад, якщо ви вибрали Синій 3; Синій 4 буде джокером (окей), і гравець може використовувати цю плитку замість будь-якої плитки, яку гравцеві потрібно виграти або завершити набір (за).

Звичайно, ці правила є загальними правилами та узагальнені для пояснення питання. Якщо ви можете прочитати англійську, ви можете ознайомитись із цим посиланням для отримання додаткової інформації http://tr.wikipedia.org/wiki/Окей або перекладену сторінку Google Translate 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

То який алгоритм AI, який я можу використовувати? Я шукав теорію minimax та альфа-бета обрізку. Але ці теорії, як правило, стосуються двох ігор гравців, як шахи або тик-нок.

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


1
Ви можете використовувати багато алгоритмів AI, так що "який" - це дизайн (або, можливо, інженерний) компроміс. Ви хочете "ідеального" AI, який може "вирішити" гру (тобто грати оптимально)? Або ви хочете "гра" AI, яка грає досить добре, щоб не бентежити себе, але досить слабка, що вона є зручною (особливо, якщо ви хочете кілька рівнів складності)? Або ви просто хочете "німий" AI з голими кістками, який грає без логіки, щоб ви могли протестувати гру? Багато варіантів, жодне по суті не є правильним чи неправильним.
Ян Шрайбер

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

@Ian, я хочу, щоб AI міг грати в гру прийнятною. Можливо, пізніше я можу додати рівні складності. Тож мені потрібна відправна точка. @Matthew я додам своє питання туди. Дякую всім.
bahadir arslan

Ой! Здається, ai.stackexchange.com був закритий, хоча це було б ідеальним місцем для запитання ... сумно.
bummzack

Добре відомі багатокористувацькі версії minmax - це MaxN та Paranoid Search
Druzil

Відповіді:


3

Якщо ви поміняєте плитки для карт, опис гри звучить неймовірно схоже на гру з картками Джин Румі. Можливо, ви зможете знайти деякі прямі ресурси ШІ, шукаючи їх.

Один варіант для AI, який є агностичним щодо кількості гравців і може бути використаний для створення різних особистостей AI:

  1. Пограйте в настільну гру, в ідеалі з деякими друзями, хоча ви можете грати всіма руками самостійно, але із зручним комп'ютером та відкритим Excel.
  2. Розмовляйте, навантажуйте, яким є ваш розумовий процес. Буде ряд дискретних моментів, які ви враховуєте, приймаючи рішення. Такі речі, як "чи дає мені небажана плитка набір, який можна відтворити", або "наблизити мене до набору", або "додати до наявного набору для відтворення".
  3. Потім, як тільки у вас з'явиться список усіх предметів, які ви враховуєте, приймаючи рішення, яку плитку забрати і яку плитку відкинути, починайте створювати для них вагові числа, виходячи з того, що для вас найважливіше.
    1. Приклад: Можливо, утричі важливіше отримати третю плитку в послідовності, як це отримати четверту плитку в існуючій послідовності.
  4. Коли ви отримаєте всі ці ваги для всіх речей, на які ви дивитесь, приймаючи рішення, ви можете використовувати Excel для підрахунку балу за кожну дію. Отже, у вас є робочий аркуш, де кожен рядок представляє вибір дії, а кожен стовпець представляє вирішальний фактор. Якщо цей коефіцієнт справедливий для цієї дії, ви помножите його на вагу, якщо цей коефіцієнт помилковий, ви оцінюєте його нуль. Потім ви складаєте всі бали, і той, який має найвище значення, - це те, що AI вирішить зробити.
  5. Пограйте в гру з відкритим Excel. Кожен поворот бачить, чи відповідає результат результату, який ви обрали б. Якщо він не коригує ваги залежно від вашого мислення, поки це не зробить. Після кількох ігор AI повинен грати в гру так само, як і ви. Якщо ви постійно граєте з групою друзів, які мають різну вагу, то у вас буде AI з різними особистостями.

Тоді ви можете контролювати труднощі, не завжди вибираючи найбільш високий рейтинг. Оскільки нижчий бал - тим гірше рішення.


Ось стаття про створення AI для Джин Руммі. Це може виявити корисну думку. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Тім Холт

Я перегляну це якомога швидше. Дякую @Tim Holt та @skerslake
arslan

Я б також роздивився стратегії Маджонга. Це не настільки тісно пов’язано, але все ще близько.
Лорен Печтел
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.