Wie erstelle ich eine vernünftige KI?

11

Ich erstelle ein Logikspiel, das auf Fox and Hounds basiert. Der Spieler spielt den Fuchs und die KI spielt die Hunde. (soweit ich sehen kann) Ich habe es geschafft, die KI perfekt zu machen, so dass sie niemals verliert. Es als solches zu belassen, würde menschlichen Spielern nicht viel Spaß machen.

Jetzt muss ich die KI herunterdrücken, damit der Mensch gewinnen kann, aber ich bin nicht sicher, wie. Die derzeitige KI-Logik basiert auf dem Pattern Matching. Wenn ich zufällige Züge einführe, durch die das Spielbrett den Pattern Space verlässt, wird die KI höchstwahrscheinlich bis zum Ende des Spiels dumm bleiben.

Irgendwelche Ideen, wie man die KI auf eine Weise dumm macht, die nicht in einem einzigen Zug von "genial" zu "völlig dumm" führt?

Milan Babuškov
quelle
So haben Sie die optimale, immer gewinnbringende Strategie gefunden und umgesetzt. Warum nicht gleich zu etwas komplizierteren Spielen übergehen? Oder wie wäre es mit einer Herausforderung: Setzen Sie eine Strategie um, die immer verliert , egal was der andere Spieler tut. Siehe auch: Verlierendes Schach / Antichess
Martin Sojka
Vielleicht möchten Sie sich meine Antwort auf diese andere Frage ansehen: gamedev.stackexchange.com/questions/12858/…
Tyn
Fox and Hounds ist nicht so komplex wie Schach. Ein falscher Zug und AI verliert mit Sicherheit. Es ist sehr einfach, KI dumm aussehen zu lassen. Die Tatsache, dass ich es mit Stift und Papier und stundenlangem strategischem Denken gelöst habe, bedeutet nicht, dass meine Spieler das Gleiche tun werden.
Milan Babuškov

Antworten:

7

Viele Implementierungen können zu einer zufällig gewichteten Chance für Züge führen - zum Beispiel einer Chance, einen optimalen Zug zu machen, und einer Chance, einen suboptimalen Zug zu machen. Zu bestimmen, wie suboptimal ein Zug ist, kann ein sehr schwieriges Problem sein, führt aber auch dazu, dass Ihre KI viel intelligentere Entscheidungen trifft.

Wichtiger Hinweis: Unabhängig vom Schwierigkeitsgrad wäre es wahrscheinlich eine schlechte Idee, wenn die KI die Chance vergibt, das Spiel sofort zu gewinnen. Wenn es eine Möglichkeit gibt, einen Zug zu machen, der das Spiel in dieser Runde beendet, sollte er immer ausgeführt werden. Andernfalls wird der Eindruck des Spielers, wie sich die KI verhält, absolut zerstört.

Rechnung
quelle
Vielen Dank. Ich habe beschlossen, es für all die einfachen Muster schlau spielen zu lassen. Es gibt zwei komplexe Muster, bei denen der Weg des Spielers zur Freiheit nicht leicht zu erkennen ist. Deshalb habe ich zusätzliche Muster erstellt, die die KI durch das Spielen von Zügen verlieren lassen, die einem Anfänger in einer solchen Position ähneln würden. Zu Beginn des Spiels wechsle ich das Gewinnmuster nach dem Zufallsprinzip und verliere eines für solche Positionen.
Milan Babuškov
10

Da dies ein "gelöstes" Spiel zu sein scheint, ist die einzige Antwort, dass der Computer absichtlich schlechte Züge machen muss.

Eine schnelle Lösung könnte darin bestehen, den besten Zug zu berechnen und dann einen anderen legalen Zug zu berechnen, der möglicherweise nicht so gut ist. Der Schwierigkeitsgrad der KI wird an der prozentualen Wahrscheinlichkeit gemessen, mit der der andere, nicht so gute Zug über dem perfekten Zug liegt.

  • Schwierig - 90% gute Züge
  • Schwer - 70% gute Züge
  • Normal - 50% gute Züge
  • Einfach - 20% gute Züge
  • Wurde als Kind fallen gelassen - <5% gute Züge
  • Hotdog - Alle zufällig
Adrian Seeley
quelle
10
Dies ist wahrscheinlich eine gute Idee, aber Sie würden mit einer verzögerten KI enden, wenn sie absichtlich falsche Bewegungen ausführt. Aus dem Kopf mache ich zuerst einen Pass für "legale" Züge, wende dann Gewichte auf jeden Zug an und ordne sie nach Gewicht, wobei das höchste Gewicht der beste Zug ist. Sie können dann einen RNG je nach Schwierigkeitsgrad zu besseren Zügen konvergieren lassen.
Jonathan Connell
4
Ich stimme mit Jonathan Connell überein. Bedenken Sie: sich hinter Kisten verstecken oder sich hinter explosiven Fässern verstecken oder sich zwischen Kisten und einer aktiven Granate verstecken. Die KI sollte bewerten, wie schlecht der Zug ist, wobei eine bessere KI öfter bessere Züge macht. Eine KI wird nicht großartig oder hart sein, wenn sie 70% der Zeit auf dich schießt und 30% der Zeit, in der sie sich selbst in die Luft sprengt. Es wird einfach lustig.
Doppelgreener
2
@Adrian Seeley Ihr letzter Kommentar berührt wirklich das größte Problem; Für mich wird ein Mensch, der gegen die KI spielt, immer instinktiv eine Begründung für seine Entscheidungen finden, auch wenn sie theoretisch völlig zufällig sind. In einem Brettspiel kann dem zum Beispiel begegnet werden, indem die Anzahl der Iterationen bei der Vorhersage von Zügen begrenzt wird. Vielleicht ist dies also eine gute Lösung in einem lösbaren Spiel?
Jonathan Connell
2
Ich stimme beiden Jonathans zu, aber ich gebe diese Antwort +1 für "Wurde als Kind fallen
gelassen
2
@ Jonathan Connell: Sie sollten Ihre Vorschläge / Lösungen als Antwort posten. Es würde einige Gegenstimmen verdienen.
Bummzack