Tworzenie AI gry planszowej

9

Chcę zakodować grę planszową o nazwie Okey i najbardziej popularną w Turcji. http://en.wikipedia.org/wiki/Okey

Ale mam problemy z AI.

Firslty pozwól mi wyjaśnić grę ..

W grze bierze udział 4 graczy.

W tej grze jest 106 płytek, 2 z nich to fałszywy żart. Pozostałe 104 płytki są podzielone na 4 kolory, ogólnie zielony, czarny, niebieski i czerwony. Wszystkie kolory mają dwa zestawy płytek. Zestaw ise zawiera 13 kafelków ponumerowanych kolejno od 1 do 13.

Każdy gracz rozpoczyna 14 kafelków (jeden to 15 i zaczyna się pierwszy) i rzuca jeden z najbardziej niechcianych kafelków następnego gracza. Następny gracz może zdobyć ten kafelek lub inny kafel ze stosu na środku stołu. Gra odbywa się w kierunku przeciwnym do ruchu wskazówek zegara ..

Celem tej gry jest jak najszybsze znalezienie prawidłowej sekwencji 14 płytek. Gracz może wyrównywać kafelki według kolejnych numerów w tym samym kolorze do 13. Na przykład zielony 1, zielony 2, zielony 3. Istnieje wyjątek, 1 można zastosować do 13. Na przykład czerwony 12, czerwony 13 i czerwony 1 to prawidłowy zestaw. Ale czerwone 13, czerwone 1 i czerwone 2 są nieprawidłowe.

Lub gracz może wyrównać płytki według kolorów w tym samym numerze. Na przykład zielony 1, czarny 1, czerwony 1, niebieski 1.

Każdy zestaw musi składać się z 3 lub więcej kafelków, aby był prawidłowy, a każdy z tych zestawów ma nazwę „Per”. Mniej niż 3 płytki nie są ważne dla wykończenia. Prawidłowy zestaw końcowy może być taki. G: zielony, B: niebieski, R: czerwony, BL: czarny G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

Ostatnia rzecz, kiedy zaczynasz grę, wybierz kafelek określający jokera (okej). Na przykład, jeśli wybierzesz Niebieski 3; Niebieski 4 będzie jokerem (okej), a gracz może użyć tego kafelka zamiast dowolnego kafelka, którego gracz potrzebuje do wygrania lub ukończenia zestawu (za).

Oczywiście zasady te są zasadami ogólnymi i streszczonymi w celu wyjaśnienia pytania. Jeśli potrafisz czytać po angielsku, możesz sprawdzić ten link, aby uzyskać więcej informacji http://tr.wikipedia.org/wiki/Okey lub przetłumaczoną stronę 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

Więc jakiego algorytmu AI mogę użyć? Szukałem teorii minimax i przycinania alfa beta. Teorie te dotyczą jednak ogólnie gry w dwóch graczy, takich jak szachy lub kółko i krzyżyk.

Oryginalne pytanie jest na stackoverflow: /programming/4419628/creating-a-board-game-ai

bahadir arslan
źródło
1
Możesz użyć wielu algorytmów AI, więc „który” jest kompromisem projektowym (lub ewentualnie inżynieryjnym). Czy chcesz „idealnej” sztucznej inteligencji, która może „rozwiązać” grę (tzn. Grać optymalnie)? A może chcesz „AI” gry, która gra wystarczająco dobrze, by się nie zawstydzić, ale na tyle słaba, aby można ją było pokonać (szczególnie jeśli potrzebujesz kilku poziomów trudności)? A może chcesz tylko „głupią” sztuczną inteligencję, która gra bez logiki, abyś mógł przetestować grę? Wiele wyborów, żaden z natury dobry lub zły.
Ian Schreiber,
Sądzę, że potrzebujesz algorytmu opracowanego specjalnie dla tego problemu, chociaż możesz być w stanie użyć różnych technik / algorytmów w nim zawartych. Możesz uzyskać dobrą odpowiedź na ai.stackexchange.com
Matthew Read
@Ian, chcę, aby AI mogła sama grać w grę akceptowalną. Być może później mogę dodać poziomy trudności. Potrzebuję więc punktu wyjścia. @Matthew dodam tam moje pytanie. Dziękuję wam wszystkim.
bahadir arslan
Auć! Wygląda na to, że ai.stackexchange.com została zamknięta, choć byłoby to idealne miejsce do zapytania ... smutne.
bummzack
Dobrze znanymi wersjami minmax dla wielu graczy są MaxN i Paranoid Search
Druzil

Odpowiedzi:

3

Jeśli zamienisz kafelki na karty, opis gry brzmi niesamowicie podobnie do gry karcianej Gin Rummy. Możesz znaleźć jakieś bezpośrednie zasoby AI, wyszukując w tym celu.

Jedna opcja dla AI, która jest niezależna od liczby graczy i może być używana do tworzenia różnych osobowości AI:

  1. Zagraj w grę planszową, najlepiej z kilkoma przyjaciółmi, chociaż możesz rozegrać wszystkie ręce samodzielnie, ale z komputerem pod ręką i otwartym programem Excel.
  2. Omów ładuj swój proces myślowy. Będzie wiele dyskretnych punktów, które należy wziąć pod uwagę przy podejmowaniu decyzji. Rzeczy takie jak „czy niechciany kafelek daje mi grywalny zestaw”, „zbliżają mnie do zestawu” lub „dodają do istniejącego grywalnego zestawu”.
  3. Następnie, gdy masz już listę wszystkich elementów, które bierzesz pod uwagę przy podejmowaniu decyzji, który kafelek wybrać i który kafelek odrzucić, zacznij tworzyć dla nich wagi liczbowe na podstawie tego, co jest dla Ciebie najważniejsze.
    1. Przykład: Zdobycie trzeciego kafelka w sekwencji może być trzy razy ważniejsze niż zdobycie czwartego kafelka w istniejącej sekwencji.
  4. Po uzyskaniu wszystkich tych wag dla wszystkich rzeczy, na które patrzysz, podejmując decyzję, możesz użyć programu Excel do obliczenia wyniku dla każdej akcji. Masz więc arkusz roboczy, w którym każdy wiersz reprezentuje wybór akcji, a każda kolumna stanowi czynnik decydujący. Jeśli ten czynnik jest prawdziwy dla tego działania, pomnożymy go przez wagę, jeśli ten czynnik jest fałszywy, otrzymujesz zero. Następnie sumujesz wszystkie wyniki, a ten o najwyższej wartości jest tym, co AI zrobi.
  5. Zagraj w grę z otwartym programem Excel. Każda runda sprawdza, czy wynik punktowy pasuje do wyniku, który wybierzesz. Jeśli nie dostosuje wag w oparciu o twoje myślenie, dopóki tego nie zrobi. Po kilku grach AI powinna zagrać w tę samą grę. Jeśli grasz konsekwentnie z grupą przyjaciół o różnej wadze, będziesz mieć AI o różnych osobowościach.

Następnie możesz kontrolować poziom trudności, nie zawsze wybierając najwyżej ocenianą opcję. Ponieważ niższy wynik, tym gorsza decyzja.

wkerslake
źródło
Oto artykuł o tworzeniu sztucznej inteligencji dla remika Gin. Może to dostarczyć użytecznych informacji. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt
Zajmę się tym jak najszybciej. Dziękuję @Tim Holt i @skerslake
bahadir arslan
Rozejrzałbym się także za strategiami MahJongga. Nie jest tak blisko spokrewniony, ale wciąż jest blisko.
Loren Pechtel,