Erstellen einer Brettspiel-KI

9

Ich möchte ein Brettspiel codieren, dessen Name Okey ist und das in der Türkei am beliebtesten ist. http://en.wikipedia.org/wiki/Okey

Aber ich habe einige Probleme mit AI.

Firslty lass mich das Spiel erklären ..

Das Spiel wird von 4 Spielern gespielt.

In diesem Spiel gibt es 106 Plättchen, von denen 2 gefälschte Joker sind. Andere 104 Kacheln sind in 4 Farben unterteilt, im Allgemeinen grün, schwarz, blau und rot. Alle Farben haben zwei Sätze Fliesen. Ein Set ise enthält 13 Kacheln, die fortlaufend von 1 bis 13 nummeriert sind.

Jeder Spieler startet 14 Plättchen (eines ist Start 15 und startet zuerst) und wirft eines der unerwünschtesten Plättchen des nächsten Spielers. Der nächste Spieler kann dieses Plättchen oder ein anderes Plättchen vom Stapel in der Mitte des Tisches bekommen. Das Spiel wurde gegen den Uhrzeigersinn gespielt.

Das Ziel dieses Spiels ist es, so schnell wie möglich die gültige Reihenfolge von 14 Plättchen zu finden. Der Spieler kann Kacheln durch fortlaufende Nummern in derselben Farbe bis 13 ausrichten. Zum Beispiel Grün 1, Grün 2, Grün 3. Hier gibt es eine Ausnahme, 1 kann bis 13 folgen. Zum Beispiel ist Rot 12, Rot 13 und Rot 1 a gültiger Satz. Rot 13, Rot 1 und Rot 2 sind jedoch nicht gültig.

Oder der Spieler kann Kacheln nach Farben in derselben Anzahl ausrichten. Zum Beispiel Grün 1, Schwarz 1, Rot 1, Blau 1.

Jeder Satz muss aus 3 oder mehr Kacheln bestehen, um gültig zu sein, und jeder dieser Sätze muss als "Per" bezeichnet werden. Weniger als 3 Kacheln sind für das Finish nicht gültig. Ein gültiger Zielsatz kann so sein. G: Grün, B: Blau, R: Rot, BL: Schwarz G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

Als letztes wird beim Starten des Spiels ein Plättchen ausgewählt, um den Joker (okey) zu bestimmen. Zum Beispiel, wenn Sie Blau 3 auswählen; Blau 4 ist ein Joker (okey) und der Spieler kann dieses Plättchen anstelle jedes Plättchens verwenden, das der Spieler benötigt, um einen Satz zu gewinnen oder zu vervollständigen (pro).

Natürlich sind diese Regeln allgemeine Regeln und werden zusammengefasst, um die Frage zu erklären. Wenn Sie Englisch lesen können, können Sie diesen Link überprüfen, um weitere Informationen zu erhalten: http://tr.wikipedia.org/wiki/Okey oder eine übersetzte Seite von Google Translate http://translate.google.com/translate?js=n&prev=_t&hl= de & ie = UTF-8 & layout = 2 & eotf = 1 & sl = tr & tl = de & u = http: //tr.wikipedia.org/wiki/Okey

Welchen AI-Algorithmus kann ich also verwenden? Ich suchte nach Minimax-Theorie und Alpha-Beta-Schnitt. Aber diese Theorien beziehen sich im Allgemeinen auf 2-Spieler-Spiele wie Schach oder Tic-Tac-Toe.

Die ursprüngliche Frage ist bei stackoverflow: /programming/4419628/creating-a-board-game-ai

Bahadir Arslan
quelle
1
Sie können viele KI-Algorithmen verwenden, also ist "welcher" ein Kompromiss zwischen Design (oder möglicherweise Engineering). Möchten Sie eine "perfekte" KI, die das Spiel "lösen" kann (dh optimal spielen)? Oder möchten Sie eine "Spiel" -KI, die gut genug spielt, um sich nicht in Verlegenheit zu bringen, aber schwach genug, dass sie schlagbar ist (insbesondere, wenn Sie mehrere Schwierigkeitsstufen wünschen)? Oder möchten Sie einfach eine "dumme" KI, die ohne Logik spielt, damit Sie das Spiel testen können? Viele Möglichkeiten, keine von Natur aus richtig oder falsch.
Ian Schreiber
Ich würde denken, dass Sie einen Algorithmus benötigen, der speziell für dieses Problem entwickelt wurde, obwohl Sie möglicherweise verschiedene Techniken / Algorithmen darin verwenden können. Sie könnten eine gute Antwort auf ai.stackexchange.com bekommen
Matthew Read
@ Ian, ich möchte, dass KI das Spiel selbst akzeptabel spielen kann. Vielleicht kann ich später Schwierigkeitsgrade hinzufügen. Also brauche ich einen Startpunkt. @ Matthew Ich werde meine Frage dort hinzufügen. Danke euch allen.
Bahadir Arslan
Autsch! Scheint, als wäre ai.stackexchange.com geschlossen worden, obwohl dies der perfekte Ort gewesen wäre, um zu fragen ... traurig.
Bummzack
Die bekannten Multiplayer-Versionen von Minmax sind MaxN und Paranoid Search
Druzil

Antworten:

3

Wenn Sie Kacheln gegen Karten tauschen, klingt die Beschreibung des Spiels dem Kartenspiel Gin Rummy unglaublich ähnlich. Möglicherweise können Sie einige direkte KI-Ressourcen finden, indem Sie danach suchen.

Eine Option für KI, die unabhängig von der Anzahl der Spieler ist und zum Erstellen verschiedener KI-Persönlichkeiten verwendet werden kann:

  1. Spielen Sie das Brettspiel, idealerweise mit einigen Freunden, obwohl Sie alle Hände selbst spielen können, aber mit einem handlichen Computer und geöffnetem Excel.
  2. Sprechen Sie aus, was Ihr Denkprozess ist. Es gibt eine Reihe von diskreten Punkten, die Sie bei Ihrer Entscheidung berücksichtigen. Dinge wie "Gibt mir das unerwünschte Plättchen ein spielbares Set" oder "Bring mich einen Schritt näher an ein Set heran" oder "Hinzufügen zu einem vorhandenen spielbaren Set".
  3. Sobald Sie die Liste aller Elemente haben, die Sie berücksichtigen, wenn Sie entscheiden, welche Kachel aufgenommen und welche verworfen werden soll, beginnen Sie, Zahlengewichte für sie zu erstellen, basierend auf dem, was für Sie am wichtigsten ist.
    1. Beispiel: Es ist möglicherweise dreimal so wichtig, dass Sie die 3. Kachel in einer Sequenz erhalten, wie die 4. Kachel in einer vorhandenen Sequenz.
  4. Sobald Sie alle diese Gewichte für alle Dinge haben, die Sie bei einer Entscheidung berücksichtigen, können Sie mit Excel eine Punktzahl für jede Aktion berechnen. Sie haben also ein Arbeitsblatt, in dem jede Zeile eine Aktionsauswahl darstellt und jede Spalte einen entscheidenden Faktor darstellt. Wenn dieser Faktor für diese Aktion wahr ist, multiplizieren Sie ihn mit dem Gewicht. Wenn dieser Faktor falsch ist, erhalten Sie null. Dann addieren Sie alle Punkte und derjenige mit dem höchsten Wert wird von der KI ausgewählt.
  5. Spielen Sie das Spiel mit geöffnetem Excel. Überprüfen Sie in jeder Runde, ob das Ergebnis mit dem Ergebnis übereinstimmt, das Sie auswählen würden. Wenn es die Gewichte nicht basierend auf Ihrem Denken anpasst, bis es dies tut. Nach mehreren Spielen sollte die KI das Spiel genauso spielen wie Sie. Wenn Sie konsequent mit einer Gruppe von Freunden gespielt haben, die alle unterschiedliche Gewichte haben, haben Sie KIs mit verschiedenen Persönlichkeiten.

Sie können dann den Schwierigkeitsgrad steuern, indem Sie nicht immer die Option mit der höchsten Bewertung auswählen. Denn je niedriger die Punktzahl, desto schlechter die Entscheidung.

wkerslake
quelle
Hier ist ein Artikel über das Erstellen von KI für Gin Rummy. Es könnte sich als nützliche Erkenntnisse erweisen. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt
Ich werde das so schnell wie möglich prüfen. Vielen Dank, dass Sie @Tim Holt und @skerslake
Bahadir Arslan
Ich würde mich auch nach MahJongg-Strategien umsehen. Es ist nicht ganz so eng verwandt, aber es ist immer noch eng.
Loren Pechtel