1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Felix

Beiträge von Felix

  • Tic Tac Toe Spiel "KI" möglichkeiten

    • Felix
    • 18. August 2014 um 14:19

    Das mit der "Brute-Force-Methode" kliengt interesant. Aber wie bekommt man es hin das ein programm alle möglichen züge berechnet?

    wie die Grafik von Wikipedia schon zeigt giebt es bei jedem weiteren zug immer neue möglichkeiten.
    Wie kann man so was in einem Programm realisieren.

    Ich brauch da einen kleinen ansatz sonst komm ich da einfach nicht weiter. ?(

    [Blockierte Grafik: http://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Tic-tac-toe-game-tree.svg/545px-Tic-tac-toe-game-tree.svg.png]

  • Tic Tac Toe Spiel "KI" möglichkeiten

    • Felix
    • 18. August 2014 um 02:58

    Hallo,
    Ich brauche einpar kleine geistigen anregungen für eine "Tic Tac Toe" KI (wenn man es überhuabut KI nennen darf).
    Also eben was für möglichkeiten es giebt dem PC Tic Tac Toe spielen bei zu bringen. :D

    Der gedanke war so das der PC immer gewinnt oder unentschieden spielt, eben den best möglichsten lösungsweg nimmt da giebt es bei tic tac toe ja nicht viele. ;)

    Die einfachste methode wehre mit IF abfragen alle möglichkeiten durch zu gehen das wehre halt sehr zeitaufwendig und nich sehr Elegant. :S

    Jetzt such ich halt nach weiteren wegen die nicht so aufwendig sind oder einen etwas interesanteren lösungsweg bieten. :D

    ich hoffe ihr könnt mir weiter helfen

    mfg Felix

    Bisheriges Spiel ohne "KI".

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    $Tic_Tac_Toe_Form = GUICreate("Tic Tac Toe", 400, 400, -1, -1)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Feld[9]
    $Feld_X = 25
    $Feld_Y = 25

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $A=0 to 8

    [/autoit] [autoit][/autoit] [autoit]

    $Feld[$A] = GUICtrlCreateButton("", $Feld_X, $Feld_Y, 100, 100)
    GUICtrlSetFont(-1, 72, 800, 0, "Comic Sans MS")

    [/autoit] [autoit][/autoit] [autoit]

    $Feld_X = $Feld_X+125

    [/autoit] [autoit][/autoit] [autoit]

    If $Feld_X = 400 Then
    $Feld_X = 25
    $Feld_Y = $Feld_Y+125
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion ### END GUI section ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Dim $Feld_Aktive [9]

    [/autoit] [autoit][/autoit] [autoit]

    For $B=0 to 8
    $Feld_Aktive[$B]=True
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $Spieler = "X"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    For $B=0 to 8
    Switch $nMsg

    [/autoit] [autoit][/autoit] [autoit]

    Case $Feld[$B]
    If $Feld_Aktive[$B] Then

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($Feld[$B],_X_O())
    $Feld_Aktive[$B] = False
    GUICtrlSetState($Feld[$B],$GUI_DISABLE)

    [/autoit] [autoit][/autoit] [autoit]

    _Sieg_Pruefen("X")
    _Sieg_Pruefen("O")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    Next

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _X_O ()

    [/autoit] [autoit][/autoit] [autoit]

    If $Spieler = "X" Then
    $Spieler = "O"
    Return "X"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Spieler = "O" Then
    $Spieler = "X"
    Return "O"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Sieg_Pruefen($Fuer)

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[0])=$Fuer And GUICtrlRead($Feld[1])=$Fuer And GUICtrlRead($Feld[2])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[3])=$Fuer And GUICtrlRead($Feld[4])=$Fuer And GUICtrlRead($Feld[5])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[6])=$Fuer And GUICtrlRead($Feld[7])=$Fuer And GUICtrlRead($Feld[8])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[0])=$Fuer And GUICtrlRead($Feld[3])=$Fuer And GUICtrlRead($Feld[6])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[1])=$Fuer And GUICtrlRead($Feld[4])=$Fuer And GUICtrlRead($Feld[5])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[2])=$Fuer And GUICtrlRead($Feld[5])=$Fuer And GUICtrlRead($Feld[8])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[0])=$Fuer And GUICtrlRead($Feld[4])=$Fuer And GUICtrlRead($Feld[8])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Feld[6])=$Fuer And GUICtrlRead($Feld[4])=$Fuer And GUICtrlRead($Feld[2])=$Fuer Then
    MsgBox (1,"Sieg für "&$Fuer,$Fuer&" hat gewonnen!!!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™