Vier-Gewinnt Algorithmus

  • Hallo,

    in letzter Zeit sitze ich vor einem kleinen Problem.
    Ich Programmiere zur Zeit, die Sprache dafür ist eigentlich vollkommen irrelevant, es geht mir nur um die Grundsätzliche Idee, ein Vier-Gewinnt Spiel.

    Nun habe ich das alles Programmiert und will dazu eine KI schreiben, wie ich es auch für meine anderen Spiele mache. Allerdings stehe ich da vor einem Grundsätzliche Problem:

    Wie soll mein Script merken, dass 4 Steine (horizontal, vertikal, diagonal) in einer Reihe sind.
    Meine Idee dazu war die Bennenung der Feld nach dem Muster

    | 1:1 | 1:2 | 1:3 | ...
    _______________
    | 2:1 | 2:2 | 2:3 | ...
    _______________
    ... usw.

    und dann jeweils die Umgebung des Steins nach passenden anderen Steinen in einer Reihe abzusuchen.

    Vielleicht fällt euch ja eine bessere Losung ein, denn die halte ich für suboptimal. Ich denke irgendwie, dass es da noch etwas besseres geben muss. Mathematiker sind gefragt... ;)

    Zweites Problem:
    Die KI. Ich möchte diese möglichst Intelligent gestalten. Daher habe ich mir ein Prioritätssystem überlegt.
    1. Tue alles was zum Sieg führt
    2. Tue alles was die Niederlage verhindert
    3. Bringe Steine in eine Reihe

    Und so weiter.

    Vielleicht fallen euch ja noch ein paar Ideen ein. Ich brauche nur Kreative Vorschläge. Vielleicht findet sich so ein besserer Weg... =)

    PS: Ich habs einfach mal in dieses Thema gesteckt. Für KI und solche Überlegungen fehlt ein Forum. Hoffe das Thema ist richtig gewählt. Weites gehen hat es ja mir der Homepage zu tuen... ;)

    Lg
    Phil

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • Achte aber darauf, dass die KI nicht immer nach dem gleichen Muster nach dem nächsten freien Feld sucht. Sonst kommt es immer zu den gleichen Zügen, was schnell langweilig werden kann.

  • Nein, gleiche Muster sollten eigentlich nicht entstehen.

    Ich richte mich dabei nach dem MiniMax Algoritmus für Nullsummenspiele und dann sollte die KI relativ intelligent sein.
    Ist eben nur n bisschen Code arbeit... =)

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • Also:

    Ich habe alle Position des 6x7 Felds an einm mehrdimensionales Array vergeben.
    Nach jedem neuen Stein überprüft die KI mit einer "Schablone" ob 4 Steine vertikal, horizontal oder diagonalm zusammen 4 (für Gelb) oder -4 für Rot ergeben. Wenn ja ist das Spiel gewonnen.

    Wenn der Spieler 3 in einer Reihe hat, verhindet die KI einen vierten, da sie feststellt, dass an dieser Koordinate 3 rauskommen und ein 4 verhindert werdne muss.

    Nach dem selben Prinzip geht die KI vor, wenn sie selbst bereits drei Steine in einer Reihe hat. Dann ist die KI bestrebt, die Chance zu nutzen, in dem diagonal, horizontal oder vertikal der passende Stein in die Richtige Column gesetzt wird.


    Ich hatte eigentlich gehofft, dass ihr noch mit einen paar guten Ideen daher kommt, wie man das ganze noch etwas intelligenter gestallten könnte.

    Für Leute dies interessiert: Sprache ist Actionscript 3

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • Mich würde mal interessieren was mit der KI passiert wenn ich 3 Steine in einer Reihe habe und auf beiden Seiten einen hinzupacken könnte ?? XD Dreht die dann ab oder begeht "Selbstmord"?