Arty X – lernende Tic-Tac-Toe KI

  • Schade nur das ich wirklich so um die "30-40" Spiele spielen muss damit die KI einigermaßen dagegen hält. Besser wäre eine Zentrale Brain.ini irgendwo auf dem Server wo mehere Spieler zugriff drauf hätten. Somit hätten wir nach ner Zeit eine unbesiegbare KI. HAHAHAHAHAHAHAHAHAHAH *diabolisches Lachen* ;)

    :thumbup:

  • Hey,... Wenn ich das richtig in deinen Code verstanden habe, dann schreibt sich die KI jede Spielmöglichkeit auf?
    Das ist zu umständlich. Die meisten Spielsituationen sind ja nur "gedreht" oder "gespiegelt".
    Beispielsweise bleibt es gleich ob man Rechts oben oder Links oben in der Ecke anfängt.
    Oder ob man danach in die Mitte setzt oder am Rand.

    Ansonsten ist das ein tolles Script.

  • @Make

    Das Schöne an TTT ist, dass es niemals einen Gewinner geben kann. Außer natürlich man stellt sich extra dumm. Ein TTT Spiel geht immer unentschieden aus (das hängt nichtmal davon ab, wo man anfängt. Eine KI die perfekt ist kann ebenfalls nie gewinnen. Wie gesagt: Immer unentschieden. Die Kunst ist es also eine KI zu programmieren, die sich niemals besiegen lässt und das ist nicht sonderlich schwer (geht schon in ca. 100 Zeilen Code). Kein Spieler gewinnt und das Feld sieht am Ende immer gleich aus (auch gedreht etc.):

    [Blockierte Grafik: http://upload.wikimedia.org/math/1/7/5/175bf49d858989e2a665a3b4b4126b21.png]

    Das Projekt hier zielt ja auf den Lernprozess der KI an, dass ist das Interessante. TTT ist da die einfachste Möglichkeit zu trainieren. Das Projekt finde ich gut und es funktioniert auch. Man könnte hier auch mal einen Ansatz mit Künstlichen Neuronalen Netzwerken wagen (eine UDF dazu gibts ja schon).

    Das Problem bei deiner KI is, dass sie höchstens 255.168 Spielverläufe speichern kann, bis alle Spielmöglichkeiten des TTT ausgeschöpft sind. Es gibt 46.080 perfekte Spiele. In eines dieser Spiele muss die KI den Spieler führen. Wie gesagt sieht dabei das Muster immer gleich aus. Deine KI speichert aber nur die reinen Züge. Gut wir können noch annehmen, dass der Spieler entweder dämlich ist oder seinen Kaffee noch nicht getrunken hat. Dann könnte die KI durch einen Fehler des Spielers auch einen der 77.904 Spielverläufe erwischen, in welchem sie gewinnt. Trotzdem bleiben dem Spieler dann noch 131.184 zu gewinnen.

    Für eine normale KI in einerm TTT Spiel, die nicht absichtlich Fehler macht, existieren diese 131.184 Varianten nicht, bei dir schon. Das macht es der KI noch extra schwer.

    2 Mal editiert, zuletzt von minx (23. März 2013 um 20:24)

  • Man könnte hier auch mal einen Ansatz mit Künstlichen Neuronalen Netzwerken wagen (eine UDF dazu gibts ja schon).


    Sowas meinte ich zum Beispiel. (Ein KNN ist ja eigentlich auch nur eine Datenbank, nur eben viel effizienter.)
    Ich werde das morgen auch mal versuchen.

    Edit: So ein Ansatz ist wahrscheinlich für ein Spiel wie Schach eher geeignet, Tic-tac-toe ist verglichen mit diesem Aufwand meiner Meinung nach zu leicht.

  • Herrje doch nicht so kompliziert und detailliert ^^. Eher so eine Art Transparentes Gehirn-3D-Modeel in welchem man von außen die Punkte und Striche sehen kann ^^. Dann könnte man mal die biologischen Auswirkungen von versch. Substanzen simulieren (auf die Leitungsgeschwindigkeit bezogen) ^^

    Aber highjacken wir mal den Thread nicht ^^

    Einmal editiert, zuletzt von minx (23. März 2013 um 20:39)

  • @James1337
    Ja es werden sicherlich noch einige Sachen kommen :)
    Was genau weiß ich aber noch nicht ....

    bobekos
    Eine Zentrale Ini .. die Idee find ich gut !
    Werd das in die nächste Version mit aufnehmen !:D

    @Make-Grafik
    da hast du recht, war mir aber für den anfang zu doof das alles einzeln zu machen.
    Das Ziel war mehr die KI und nicht das Sinnvolle ;)

    minx
    wie heißt denn diese UDF für die neuronalen Netzwerke

    TheShadowAE
    kann man bei mir aber auch ;)
    du kannst spielzüge zwischen Random und COM durchführen ohne Msgbox anzuzeigen