KI-Denkstanstöße

Übersicht Sonstiges Gamedesign

Neue Antwort erstellen

Dicker Hobbit

Betreff: KI-Denkstanstöße

BeitragDi, Jul 30, 2013 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Community,

Da es ja neuerdings dieses neue Subforum "Gamedesign" gibt, folge ich feider auf dem Fuße und eröffne einen Thread zum Thema künstliche Intelligenz.

Damit es auch gleich mal ordentlich gefüllt wird, habe ich eine Frage für ein Tic-Tac-Toe-Spiel.
Wenn ich danach google stoße ich immer wieder auf den Minimax-Algorithmus. Soweit ich diesen verstanden habe sortiert er jeden möglichen Zug nach "besser" und "schlechter" d.h. er gibt einem Zug entweder negatve oder positve Zahlbewertungen.

Meine Frage dazu lautet:
Kann man mit diesen Algorithmus auch überprüfen, ob ein Spieler gewonnen hat? Wenn nicht, fallen euch andere oder bessere Algorithmen ein um einen Gewinner festzustellen?

Grüße

Dicker Hobbit

Midimaster

BeitragDi, Jul 30, 2013 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Um den Sieger festzustellen musst Du bei einem so einfachen Spiel keine KI bemühen. Es gibt ja nur 8 Möglichkeiten zu gewinnen:


BlitzBasic: [AUSKLAPPEN]
Dim Feld%[3,3]
Spieler1%=1
Spieler2%=2


Function WerSieger%()
If Sieg(Spieler1) Return Spieler1
If Sieg(Spieler2) Return Spieler2
Return 0
End Function


Function Sieg%(Spieler%)
If RowSieg(0,Spieler)Return True
If RowSieg(1,Spieler) Return True
If RowSieg(2,Spieler) Return True

If ColumnSieg(0,Spieler) Return True
If ColumnSieg(1,Spieler) Return True
If ColumnSieg(2,Spieler) Return True

If DiagonalSieg(0,Spieler) Return True
If DiagonalSieg(2,Spieler) Return True
Return False
End Function


Function RowSieg%(Row%,Spieler%)
If (Feld[Row,0]<>Spieler) Return False
If (Feld[Row,1]<>Spieler) Return False
If (Feld[Row,2]<>Spieler) Return False
Return True
End Function


Function ColumnSieg%(Column%,Spieler%)
If (Feld[0,Column]<>Spieler) Return False
If (Feld[1,Column]<>Spieler) Return False
If (Feld[2,Column]<>Spieler) Return False
Return True
End Function


Function DiagonalSieg%(Ecke%,Spieler%)
If (Feld[0,Ecke]<>Spieler) Return False
If (Feld[1,1]<>Spieler) Return False
If (Feld[2,2-Ecke]<>Spieler) Return False
Return True
End Function


Es geht aber auch noch kürzer:

BlitzBasic: [AUSKLAPPEN]
Function WerSieger%()
If Sieg(Spieler1) Return Spieler1
If Sieg(Spieler2) Return Spieler2
Return 0
End Function

Function Sieg%(Spieler%)
If (Feld[0,0]=Spieler) And (Feld[1,0]=Spieler) And (Feld[2,0]=Spieler) Return True
If (Feld[0,1]=Spieler) And (Feld[1,1]=Spieler) And (Feld[2,1]=Spieler) Return True
If (Feld[0,2]=Spieler) And (Feld[1,2]=Spieler) And (Feld[2,2]=Spieler) Return True

If (Feld[0,0]=Spieler) And (Feld[0,1]=Spieler) And (Feld[0,2]=Spieler) Return True
If (Feld[1,0]=Spieler) And (Feld[1,1]=Spieler) And (Feld[1,2]=Spieler) Return True
If (Feld[2,0]=Spieler) And (Feld[2,1]=Spieler) And (Feld[2,2]=Spieler) Return True

If (Feld[0,0]=Spieler) And (Feld[1,1]=Spieler) And (Feld[2,2]=Spieler) Return True
If (Feld[2,0]=Spieler) And (Feld[1,1]=Spieler) And (Feld[0,2]=Spieler) Return True

Return False
End Function

Xeres

Moderator

BeitragDi, Jul 30, 2013 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine KI halte ich für etwas grundsätzlich anderes als einen Algorithmus um fest zu stellen, ob es einen Gewinner/Verlierer gibt.
Es gibt Spiele - wie tic tac toe - die als gelöste Probleme gelten und deren optimale Strategie bekannt ist. Da kann sich die KI an die Perfekte Lösung halten und je nach Schwierigkeitsgrad Fehler machen um dem Gegenspieler eine Chance zu lassen.
Ansonsten ist es z.B. bei Strategiespielen auch nicht unüblich, dass der Computergegner betrügt und schneller/mehr Ressourcen/Einheiten bekommt, weil die KI eben nur mittelmäßig tolle Taktiken verwirklichen kann.
Die KI könnte auch aufgeben, wenn der Spieler eine gewisse Übermacht erreicht hat... aber auch das ist nichts mit den eigentlichen Regeln zu tun.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Firstdeathmaker

BeitragSo, Aug 11, 2013 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
KI ist immer ein schwammiger Begriff. Manche bezeichnen damit schon einen Wegfindungsalgorithmus, andere verstehen darunter etwas, das Maschinenlernen nutzt und andere verstehen darunter einen vom Computer simulierten Computerspieler (der durchaus nur mit einfachen linearen Scripten realisiert werden kann).

Von daher sollte man das eventuell ein wenig präzisieren und hier von computergesteuerten Spielern reden, die man auch als "Agenten" sehen kann.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Neue Antwort erstellen


Übersicht Sonstiges Gamedesign

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group