Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

09.02.2011, 19:08

Welchen Lösungsansatz schlägst Du vor: Algorithmus für die künstliche Intelligenz eines Gegners bei diesem Würfelspiel?

Hallo Experten der Logik und der künstlichen Intelligenz

Wie sieht ein Lösungsansatz zum Entwurf einer künstlichen Intelligenz aus, die das unten beschriebene Würfelspiel gegen menschliche Gegner spielt? Mit welchen Grundideen kann ich mir den Algorithmus erarbeiten? Idealerweise ermöglicht ein solcher Algorithmus auch verschiedene Stärken der künstlichen Intelligenz. Hier die Spielbeschreibung:

Es gilt ausliegende Punkteplättchen, die Werte zwischen 21 und 36 tragen, zu gewinnen. Man darf ein Plättchen an sich nehmen, wenn man eine Augenzahl würfelt, die gleich oder höher eines verfügbaren Plättchens ist. Jedes Plättchen gibt es nur einmal, kann aber von einem anderen Spieler gestohlen werden, wenn der es nicht durch erwürfeln weiterer Plättchen davor geschützt hat.
Ein Spieler beginnt und danach geht es im Uhrzeigersinn weiter.
Der Spieler fängt an, indem er alle acht Würfel wirft. Dann wählt er eine Augenzahl, die wenigstens auf einem der Würfel gezeigt wird und legt alle Würfel dieser Augenzahl heraus. Danach gibt es zwei Möglichkeiten. Entweder die addierte Augenzahl der herausgelegten Würfel reicht schon für ein Plättchen (>= 21) oder es wird mit den restlichen Würfeln erneut gewürfelt. Man darf erneut würfeln, solange man noch Würfel übrig hat, aber nach jedem Wurf muss man Würfel mit anderen Zahlen als vorher herauslegen und mindestens einen Würfel herauslegen. Der Versuch eines Spielers endet in folgenden Fällen:
  • Falls alle Würfel Zahlen zeigen, die der Spieler schon herausgelegt hat oder
  • die Punkte nicht für ein Plättchen reichen, liegt ein Fehlwurf vor und der nächste ist dran.
  • Falls der Spieler mit seinen herausgelegten Würfeln genügend Punkte für ein Plättchen hat und sich entscheidet dieses an sich zu nehmen.


Beispiel: Der erste Wurf zeigt 6-5-5-5-4-2-1-1. Der Spieler legt die drei 5er heraus und wirft die übrigen Würfel erneut. Diese zeigen 5-5-2-2-1. Unglücklich! Der Spieler behält die 2er und wirft mit dem Rest erneut. 4-4-3-1. Der Spieler entscheidet sich für die 4er und beendet seinen Versuch mit 27 Punkten, da das entsprechende Plättchen verfügbar ist und er es an sich nimmt.

Vielen Dank für Eure Hilfe!

pacco

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

09.02.2011, 19:49

Ich denke, dass du hier einiges mit Minimax/Alpha-Beta machen kannst. Das funktioniert prinzipiell so, dass du ein paar Spielzüge simulierst und dann die Situation bewertest und dann kannst du je nachdem den Weg nehmen, der am meisten verspricht.
http://en.wikipedia.org/wiki/Minimax
http://en.wikipedia.org/wiki/Alpha-beta_pruning

Die Situation kannst du dann z.B mit ein paar Wahrscheinlichkeits Überlegungen bewerten.

Mastermind

unregistriert

3

10.02.2011, 00:09

Ich denke das ist genau die Art von Spiel auf denen Reinforcement Learning ziemlich gut funktioniert.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

10.02.2011, 22:24

Alpha-Beta bzw Min-Max sind eigentlich nicht für Spiele mit einem Zufallsfaktor gedacht. Aber mit etwas Anpassung kannst du diese für dein Problem verwenden. Du müsstest dir halt überlegen wie du die Wahrscheinlichkeit vernünftig reinbringst. Ob du diese nun nur in der Bewertung vorkommen lässt oder sehr Unwahrscheinliche Fälle aufgrund von Performance garnicht erst betrachtest kannst du dann gucken. Wobei ich mir hierbei die Arbeit mit der Alpha-Beta Suche nicht machen würde. Dort werden Teilbäume früh abgekappt um sie nicht bis zum Ende durchsuchen zu müssen. So tief wird der Suchbaum in diesem Fall aber nichtmal. Wenn du den Baum jetzt von Anfang bis Ende des Spiels erzeugen würdest schon, was jedoch quatsch ist, da einfach zu viel Zufall mit drin ist. Mein Vorschlag ist, denk dir einfach ein paar Nette Regeln aus, nachdem welche Würfel genommen werden. Fürs Ende nen paar nette Regeln welche Zahl genommen wird. Damit erziehlt man bei solchen Spielen oft sehr gute Ergebnisse. Vorallem denk dran das ne KI für nen Spiel normal nicht perfekt sein soll, da sie einem die Chance zum Sieg lassen sollte. Gegen eine KI zu spielen die jedes Spiel gewinnt ist einfach langweilig und Spiele sollen nunmal Spaß machen;) Von daher nicht übertreiben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

11.02.2011, 13:45

Alpha-Beta bzw Min-Max sind eigentlich nicht für Spiele mit einem Zufallsfaktor gedacht. Aber mit etwas Anpassung kannst du diese für dein Problem verwenden. Du müsstest dir halt überlegen wie du die Wahrscheinlichkeit vernünftig reinbringst.

Stimmt schon. Direkt ist es nicht geeignet, aber für den Teil hier:

Zitat

Danach gibt es zwei Möglichkeiten. Entweder die addierte Augenzahl der herausgelegten Würfel reicht schon für ein Plättchen (>= 21) oder es wird mit den restlichen Würfeln erneut gewürfelt.

Also die Entscheidung kann man mal beides machen und schauen wo die Wahrscheinlichkeit für einen Sieg besser ist und denn die Entscheidung anhand des Baumes treffen. Die Wahrscheinlichkeit ist ja dann lediglich dazu da, um die Spielsituation zu bewerten, und die Bewertung üblicherweise ja auch nur eine Gewichtung.

Allgemein mit Wahrscheinlichkeitsrechnung kommt man wahrscheinlich auch bereits recht weit (die Frage: wie wahrscheinlich ist das, was ich zum Sieg brauche?).

6

11.02.2011, 16:14

Allgemein mit Wahrscheinlichkeitsrechnung kommt man wahrscheinlich auch bereits recht weit (die Frage: wie wahrscheinlich ist das, was ich zum Sieg brauche?).

Das würde ich auch sagen. Pro Würfel-rauslegen Phase müsste man eigentlich pro Augenzahlkärtchen die Wahrscheinlichkeit des Erlangens bezogen auf die rauszulegende Würfelgruppe ausrechnen können. Vielleicht reicht auch die Berechnung der Wahrscheinlichkeit einen Wurf zu machen der Niederlage bedeutet aus um die richtigen Kombinationen auswählen zu können.

BTW Heckmeck FTW ^^ Das Spiel wurde übrigens von http://brettspielwelt.de genommen - es muss wohl mit einer Strategieänderung des Entwicklers zusammenhängen (http://www.brettspielwelt.de/Forum/index…c,132369.0.html). Falls du das Spiel als Klon veröffentlichen willst, solltest du vorsichtig sein. Ich habe schon einmal erlebt wie eine Veröffentlichung eines Brettspiels als Onlinevariante zu großer Aufregung und Rechtsstreit geführt hat.

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Chromanoid« (11.02.2011, 19:21)


7

15.04.2011, 13:56

Es gilt ausliegende Punkteplättchen, die Werte zwischen 21 und 36 tragen, zu gewinnen. Man darf ein Plättchen an sich nehmen, wenn man eine Augenzahl würfelt, die gleich oder höher eines verfügbaren Plättchens ist. Jedes Plättchen gibt es nur einmal, kann aber von einem anderen Spieler gestohlen werden, wenn der es nicht durch erwürfeln weiterer Plättchen davor geschützt hat.

Du hast noch nicht beschrieben, wie das Stehlen von Plättchen vor sich geht und wie man sich davor schützen kann.

Werbeanzeige