ich programmiere gerade Tic Tac Toe mit GUI und einer random KI. Leider kommt bei mir immer
Recursion level has been exceeded - AutoIt will quit to prevent stack overflow
ich weiß, dass das ist weil sich die Funktion so oft aufgerufen hat. Ich sehe aber keine Lösung. Könntet ihr mir vielleicht sagen, was an meinem Programm falsch ist?
Code:
;TIC TAC TOE;
#include<GUIConstantsEx.au3>
Global $aSpielfeldbutton
Global $Check1 = 0
Global $Check2 = 0
Global $Check3 = 0
Global $Check4 = 0
Global $Check5 = 0
Global $Check6 = 0
Global $Check7 = 0
Global $Check8 = 0
Global $Check9 = 0
Global $KiZug = 0
Global $GewonnenEinzel = 0
$Spieler = 1
$Gewonnen = 0
Global $Ki = 0
Opt("GUIOnEventMode",1)
$GUIMenu = GUICreate("Tic Tac Toe - Hauptmenü", 600,600,-1,-1) ;Menü wird erstellt;
GUISetBkColor(0xffc125) ;GUI Hintergrundfarbe;
GUISetState()
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$SpielenCtrl = GUICtrlCreateButton( "Spielen", 100,100, 400,50) ;Spielen-Button wird erstellt;
GUICtrlSetOnEvent( -1, "_Spielen")
GUICtrlSetFont(-1, 20)
GUICtrlSetBkColor(-1, 0x668B8B)
$OptionCtrl = GUICtrlCreateButton("Einstellungen", 100,300, 400, 50) ;Optionen-Button wird erstellt;
GUICtrlSetFont(-1, 10) ;Profil des Optionenbuttons;
GUICtrlSetBkColor($OptionCtrl, 0x32CD32)
$Credits = GUICtrlCreateButton ("Credits", 200,500, 200,50)
GUICtrlSetBkColor(-1, 0x9FF234)
GUICtrlSetOnEvent(-1, "_Credits")
$Einzelspieler = GUICtrlCreateButton ("Einzelspieler", 100,200,400,50) ;Einzelspieler;
GUICtrlSetBkColor(-1, 0x3445FF)
GUICtrlSetFont(-1, 20)
GUICtrlSetOnEvent($Einzelspieler, "_Einzelspieler")
$GUIOptions = GUICreate( "TIC TAC TOE - Options", 600,600,-1,-1) ;GUI für die Optionen wird erstellt;
GUISetBkColor( 0x5F5B5B, $GUIOptions)
$OptionsAudio = GUICtrlCreateButton( "Audio", 100,200,400,50) ;Audio Button wird erstellt;
GUICtrlSetBKColor(-1, 0x86CF5F)
GUICtrlSetFont(-1, 20,400)
GUISetOnEvent($GUI_Event_Close, "_ExitOption")
GUICtrlSetOnEvent( $OptionCtrl, "_Option")
GUICtrlSetOnEvent($OptionsAudio, "_Audio")
$Einzelspieler = GUICreate("Tic Tac Toe", 500,300,-1,-1) ;Spiele Buttons + Exit Buttons werden erstellt Einzelspieler;
Global $ButtonE1 = GUICtrlCreateButton( " ", 0,0, 100,100)
Global $ButtonE2 = GUICtrlCreateButton( "", 100,100, 100,100)
Global $ButtonE3 = GUICtrlCreateButton( "", 100,200, 100,100)
Global $ButtonE4 = GUICtrlCreateButton( "", 200,200, 100,100)
Global $ButtonE5 = GUICtrlCreateButton( "", 200,100, 100,100)
Global $ButtonE6 = GUICtrlCreateButton( "", 0,100, 100,100)
Global $ButtonE7 = GUICtrlCreateButton( "", 0,200, 100,100)
Global $ButtonE8 = GUICtrlCreateButton( "", 100,0, 100,100)
Global $ButtonE9 = GUICtrlCreateButton( "", 200,0, 100,100)
Global $ExitSpiel = GUICtrlCreateButton( "Exit", 400,100,50,50)
GUICtrlSetOnEvent($ExitSpiel, "_ExitSp")
GUICtrlSetOnEvent($ButtonE1, "checkE1")
GUICtrlSetOnEvent($ButtonE2, "checkE2")
GUICtrlSetOnEvent($ButtonE3, "checkE3")
GUICtrlSetOnEvent($ButtonE4, "checkE4")
GUICtrlSetOnEvent($ButtonE5, "checkE5")
GUICtrlSetOnEvent($ButtonE6, "checkE6")
GUICtrlSetOnEvent($ButtonE7, "checkE7")
GUICtrlSetOnEvent($ButtonE8, "checkE8")
GUICtrlSetOnEvent($ButtonE9, "checkE9")
$Spielen = GUICreate("Tic Tac Toe", 500,300,-1,-1) ;Spiele Buttons + Exit Buttons werden erstellt;
$Button1 = GUICtrlCreateButton( " ", 0,0, 100,100)
$Button2 = GUICtrlCreateButton( "", 100,100, 100,100)
$Button3 = GUICtrlCreateButton( "", 100,200, 100,100)
$Button4 = GUICtrlCreateButton( "", 200,200, 100,100)
$Button5 = GUICtrlCreateButton( "", 200,100, 100,100)
$Button6 = GUICtrlCreateButton( "", 0,100, 100,100)
$Button7 = GUICtrlCreateButton( "", 0,200, 100,100)
$Button8 = GUICtrlCreateButton( "", 100,0, 100,100)
$Button9 = GUICtrlCreateButton( "", 200,0, 100,100)
$ExitSpiel = GUICtrlCreateButton( "Exit", 400,100,50,50)
GUICtrlSetOnEvent($ExitSpiel, "_ExitSp")
GUICtrlSetOnEvent($Button1, "check1")
GUICtrlSetOnEvent($Button2, "check2")
GUICtrlSetOnEvent($Button3, "check3")
GUICtrlSetOnEvent($Button4, "check4")
GUICtrlSetOnEvent($Button5, "check5")
GUICtrlSetOnEvent($Button6, "check6")
GUICtrlSetOnEvent($Button7, "check7")
GUICtrlSetOnEvent($Button8, "check8")
GUICtrlSetOnEvent($Button9, "check9")
Global $Win1 = GUICtrlRead($Button1)
Global $Win2 = GUICtrlRead($Button2)
Global $Win3 = GUICtrlRead($Button3)
Global $Win4 = GUICtrlRead($Button4)
Global $Win5 = GUICtrlRead($Button5)
Global $Win6 = GUICtrlRead($Button6)
Global $Win7 = GUICtrlRead($Button7)
Global $Win8 = GUICtrlRead($Button8)
Global $Win9 = GUICtrlRead($Button9)
Global $WinE1 = GUICtrlRead($ButtonE1)
Global $WinE2 = GUICtrlRead($ButtonE2)
Global $WinE3 = GUICtrlRead($ButtonE3)
Global $WinE4 = GUICtrlRead($ButtonE4)
Global $WinE5 = GUICtrlRead($ButtonE5)
Global $WinE6 = GUICtrlRead($ButtonE6)
Global $WinE7 = GUICtrlRead($ButtonE7)
Global $WinE8 = GUICtrlRead($ButtonE8)
Global $WinE9 = GUICtrlRead($ButtonE9)
Func _Credits()
$Credits = GUICreate("Credits", 600,600, -1, -1) ;Credits werden erstellt;
$CreditCtrl = GUICtrlCreateLabel("Programmiert von: ", 100,100, 200,200)
$CreditCtrl1 = GUICtrlCreateLabel("Luca Werth ", 100,175, 400,200)
$CreditCtrl2 = GUICtrlCreateLabel("Leon Fath ", 100,250, 400,200)
$CreditCtrl3 = GUICtrlCreateLabel("Jesse Haferkamp ", 100,325,400,200)
$CreditCtrl4 = GUICtrlCreateLabel("Jonas Hermsen", 100,400, 400,200)
GUICtrlSetFont($CreditCtrl, 20)
GUICtrlSetFont($CreditCtrl1, 20)
GUICtrlSetFont($CreditCtrl2, 20)
GUICtrlSetFont($CreditCtrl3, 20)
GUICtrlSetFont($CreditCtrl4, 20)
GUISetState(@SW_SHOW, $Credits)
GUISetOnEvent($GUI_EVENT_CLOSE, "_HideCredits")
EndFunc
Global $SpielerE1 = 0
Func _Einzelspieler()
$Ki = 0
$Spieler = 1
GUISetState(@SW_SHOW, $Einzelspieler)
$SpielerE1 = InputBox("Spielername", "Gib deinen Namen an: ", "Name")
EndFunc
Func _HideCredits() ;Funktion um Credits zu verstecken;
GUISetState(@SW_HIDE, $Credits)
EndFunc
func _Exit() ;Funktion zum beenden des Programms;
Exit
EndFunc
func _Option() ;Funktion für den Options Button;
GUISwitch($GUIOptions)
GUISetState()
EndFunc
Func _Audio() ;Funktion für die Audioeinstellungen;
$SoundMenge = InputBox("Audioeinstellung", "Lautstärke (in % zwischen 0 und 100)", "Hier eingeben") ;Soundeinstellungen;
If $SoundMenge < 100 And $SoundMenge > 0 Then
SoundSetWaveVolume($SoundMenge)
MsgBox(0, "Sound wurde geändert", "Sound wurde auf " &$SoundMenge &"% geändert")
Else
MsgBox(0, "Falsche Eingabe", "Nicht in Bereich des Möglichen")
EndIf
EndFunc
Func _ExitOption() ;Funktionen zum Beenden der Optionen;
GUISetState(@SW_HIDE, $GUIOptions)
EndFunc
Func _Spielen() ;Funktion für´s spielen;
$Punktstand1 = 0
$Punktstand2 = 0
Global $Spieler1 = ""
Global $Spieler2 = ""
GUISetState(@SW_SHOW,$Spielen)
GUISetState(@SW_HIDE, $GUIMenu)
$Spieler1 = InputBox("Spieler 1", "Geben sie den Namen von Spieler 1 an", "Spieler 1")
$Spieler2 = InputBox("Spieler 2", "Geben sie den Namen von Spieler 2 an", "Spieler 2")
EndFunc
Func check1() ;Funktionen für die einzelnen Spielebuttons;
$check1 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button1, "X")
$Spieler = 2
Else
GUICtrlSetData($Button1, "O")
$Spieler = 1
EndIf
$Win1 = GUICtrlRead($Button1)
Gewonnen()
EndFunc
Func check2()
$check2 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button2, "X")
$Spieler = 2
Else
GUICtrlSetData($Button2, "O")
$Spieler = 1
EndIf
$Win2 = GUICtrlRead($Button2)
Gewonnen()
EndFunc
Func check3()
$check3 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button3, "X")
$Spieler = 2
Else
GUICtrlSetData($Button3, "O")
$Spieler = 1
EndIf
$Win3 = GUICtrlRead($Button3)
Gewonnen()
EndFunc
Func check4()
$check4 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button4, "X")
$Spieler = 2
Else
GUICtrlSetData($Button4, "O")
$Spieler = 1
EndIf
$Win4 = GUICtrlRead($Button4)
Gewonnen()
EndFunc
Func check5()
$check5 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button5, "X")
$Spieler = 2
Else
GUICtrlSetData($Button5, "O")
$Spieler = 1
EndIf
$Win5 = GUICtrlRead($Button5)
Gewonnen()
EndFunc
Func check6()
$check6 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button6, "X")
$Spieler = 2
Else
GUICtrlSetData($Button6, "O")
$Spieler = 1
EndIf
$Win6 = GUICtrlRead($Button6)
Gewonnen()
EndFunc
Func check7()
$check7 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button7, "X")
$Spieler = 2
Else
GUICtrlSetData($Button7, "O")
$Spieler = 1
EndIf
$Win7 = GUICtrlRead($Button7)
Gewonnen()
EndFunc
Func check8()
$check8 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button8, "X")
$Spieler = 2
Else
GUICtrlSetData($Button8, "O")
$Spieler = 1
EndIf
$Win8 = GUICtrlRead($Button8)
Gewonnen()
EndFunc
Func check9()
$check9 = 1
If $Spieler = 1 Then
GUICtrlSetData($Button9, "X")
$Spieler = 2
$KiZug = 1
Else
GUICtrlSetData($Button9, "O")
$Spieler = 1
EndIf
$Win9 = GUICtrlRead($Button9)
Gewonnen()
EndFunc
Func checkE1() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE1, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE1 = GUICtrlRead($ButtonE1)
$ButtonFrei1 = GUICtrlRead($ButtonE1)
GewonnenEinzel()
_KiZug()
EndFunc
Func checkE2() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE2, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE2 = GUICtrlRead($ButtonE2)
$ButtonFrei2 = GUICtrlRead($ButtonE2)
GewonnenEinzel()
_KiZug()
EndFunc
Func checkE3() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE3, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE3 = GUICtrlRead($ButtonE3)
$ButtonFrei3 = GUICtrlRead($ButtonE3)
GewonnenEinzel()
_KiZug()
EndFunc
Func checkE4() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE4, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE4 = GUICtrlRead($ButtonE4)
$ButtonFrei4 = GUICtrlRead($ButtonE4)
GewonnenEinzel()
_KiZug()
EndFunc
Func checkE5() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE5, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE5 = GUICtrlRead($ButtonE5)
$ButtonFrei5 = GUICtrlRead($ButtonE5)
GewonnenEinzel()
_KiZug()
EndFunc
Func checkE6() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE6, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE6 = GUICtrlRead($ButtonE6)
$ButtonFrei6 = GUICtrlRead($ButtonE6)
GewonnenEinzel()
_KiZug()
EndFunc
Func checkE7() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE7, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE7 = GUICtrlRead($ButtonE7)
$ButtonFrei7 = GUICtrlRead($ButtonE7)
Gewonnen()
_KiZug()
EndFunc
Func checkE8() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE8, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE8 = GUICtrlRead($ButtonE8)
$ButtonFrei8 = GUICtrlRead($ButtonE8)
GewonnenEinzel()
_KiZug()
EndFunc
Func checkE9() ;Funktionen für die einzelnen Spielebuttons checkE1 = checkEinzelspieler 1;
If $Spieler = 1 Then
GUICtrlSetData($ButtonE9, "X")
$Ki = 2
$Spieler = 0
EndIf
$WinE9 = GUICtrlRead($ButtonE9)
$ButtonFrei9 = GUICtrlRead($ButtonE9)
GewonnenEinzel()
_KiZug()
EndFunc
Global $ButtonFrei1 = GUICtrlRead($ButtonE1)
Global $ButtonFrei2 = GUICtrlRead($ButtonE2)
Global $ButtonFrei3 = GUICtrlRead($ButtonE3)
Global $ButtonFrei4 = GUICtrlRead($ButtonE4)
Global $ButtonFrei5 = GUICtrlRead($ButtonE5)
Global $ButtonFrei6 = GUICtrlRead($ButtonE6)
Global $ButtonFrei7 = GUICtrlRead($ButtonE7)
Global $ButtonFrei8 = GUICtrlRead($ButtonE8)
Global $ButtonFrei9 = GUICtrlRead($ButtonE9)
Func _KiZug()
$KiZahl = random(1,9,1)
Select
Case $KiZahl == 1 And $ButtonFrei1 == ""
Sleep(500)
GUICtrlSetData($ButtonE1, "O")
$ButtonFrei1 = GUICtrlRead($ButtonE1)
$WinE1 = 1
$Spieler = 1
Case $KiZahl == 2 And $ButtonFrei2 == ""
Sleep(500)
GUICtrlSetData($ButtonE2, "O")
$ButtonFrei2 = GUICtrlRead($ButtonE2)
$WinE2 = 1
$Spieler = 1
Case $KiZahl == 3 And $ButtonFrei3 == ""
Sleep(500)
GUICtrlSetData($ButtonE3, "O")
$ButtonFrei3 = GUICtrlRead($ButtonE3)
$WinE3 = 1
$Spieler = 1
Case $KiZahl == 4 And $ButtonFrei4 == ""
Sleep(500)
GUICtrlSetData($ButtonE4, "O")
$ButtonFrei4 = GUICtrlRead($ButtonE4)
$WinE4 = 1
$Spieler = 1
Case $KiZahl == 5 And $ButtonFrei5 == ""
Sleep(500)
GUICtrlSetData($ButtonE5, "O")
$ButtonFrei5 = GUICtrlRead($ButtonE5)
$WinE5 = 1
$Spieler = 1
Case $KiZahl == 6 And $ButtonFrei6 == ""
Sleep(500)
GUICtrlSetData($ButtonE6, "O")
$ButtonFrei6 = GUICtrlRead($ButtonE6)
$Spieler = 1
$WinE6 = 1
Case $KiZahl == 7 And $ButtonFrei7 == ""
Sleep(500)
GUICtrlSetData($ButtonE7, "O")
$ButtonFrei7 = GUICtrlRead($ButtonE7)
$WinE7 = 1
$Spieler = 1
Case $KiZahl == 8 And $ButtonFrei8 == ""
Sleep(500)
GUICtrlSetData($ButtonE8, "O")
$ButtonFrei8 = GUICtrlRead($ButtonE8)
$WinE8 = 1
$Spieler = 1
Case $KiZahl == 9 And $ButtonFrei9 == ""
Sleep(500)
$ButtonFrei9 = GUICtrlRead($ButtonE9)
GUICtrlSetData($ButtonE9, "O")
$WinE9 = 1
$Spieler = 1
Case Else
_KiZug()
EndSelect
EndFunc
Func _ExitSp() ;Man geht aus dem Mehrspieler raus;
GUISetState(@SW_HIDE, $Spielen)
GUISetState(@SW_HIDE, $Einzelspieler)
GUISetState(@SW_Show, $GUIMenu)
_reset()
EndFunc
Func _reset() ;Spielfeld wird zurückgesetzt;
GUICtrlSetData($Button1, "")
GUICtrlSetData($Button2, "")
GUICtrlSetData($Button3, "")
GUICtrlSetData($Button4, "")
GUICtrlSetData($Button5, "")
GUICtrlSetData($Button6, "")
GUICtrlSetData($Button7, "")
GUICtrlSetData($Button8, "")
GUICtrlSetData($Button9, "")
$Win1 = 0
$Win2 = 0
$Win3 = 0
$Win4 = 0
$Win5 = 0
$Win6 = 0
$Win7 = 0
$Win8 = 0
$Win9 = 0
GUICtrlSetData($ButtonE1, "")
GUICtrlSetData($ButtonE2, "")
GUICtrlSetData($ButtonE3, "")
GUICtrlSetData($ButtonE4, "")
GUICtrlSetData($ButtonE5, "")
GUICtrlSetData($ButtonE6, "")
GUICtrlSetData($ButtonE7, "")
GUICtrlSetData($ButtonE8, "")
GUICtrlSetData($ButtonE9, "")
$WinE1 = 0
$WinE2 = 0
$WinE3 = 0
$WinE4 = 0
$WinE5 = 0
$WinE6 = 0
$WinE7 = 0
$WinE8 = 0
$WinE9 = 0
$SpielerE1 = 1
EndFunc
Func GewonnenEinzel() ;Funktion zum Überprüfen wer/ob jemand gewonnen hat;
Select
Case $WinE1 == "X" And $WinE2 == "X" And $WinE4 == "X"
MsgBox(0, "Spiel zuende1" ,"Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE9 == "X" And $WinE2 == "X" And $WinE7 == "X"
MsgBox(0, "Spiel zuende", "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE1 == "X" And $WinE6 == "X" And $WinE7 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE1 == "X" And $WinE8 == "X" And $WinE9 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE9 == "X" And $WinE5 == "X" And $WinE4 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE7 == "X" And $WinE3 == "X" And $WinE4 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE8 == "X" And $WinE2 == "X" And $WinE3 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE6 == "X" And $WinE2 == "X" And $WinE5 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$SpielerE1)
$GewonnenEinzel = 1
_reset()
Case $WinE1 == "O" And $WinE2 == "O" And $WinE4 == "O"
MsgBox(0, "Spiel zuende" ,"Spiel zuende")
MsgBox(0, "SPieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case $WinE9 == "O" And $WinE2 == "O" And $WinE7 == "O"
MsgBox(0, "Spiel zuende", "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case $WinE1 == "O" And $WinE6 == "O" And $WinE7 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case $WinE1 == "O" And $WinE8 == "O" And $WinE9 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case $WinE9 == "O" And $WinE5 == "O" And $WinE4 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case $WinE7 == "O" And $WinE3 == "O" And $WinE4 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case $WinE8 == "O" And $WinE2 == "O" And $WinE3 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case $WinE6 == "O" And $WinE2 == "O" And $WinE5 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &"Computer")
$GewonnenEinzel = 1
_reset()
Case Else
If $WinE1 == "O" or $WinE1 == "X" Then ;Im Falle eines Unentschiedens;
If $WinE2 == "O" or $WinE2 == "X" Then
If $WinE3 == "O" or $WinE3 == "X" Then
If $WinE4 == "O" or $WinE4 == "X" Then
If $WinE5 == "O" or $WinE5 == "X" Then
If $WinE6 == "O" or $WinE6 == "X" Then
If $WinE7 == "O" or $WinE7 == "X" Then
If $WinE8 == "O" or $WinE8 == "X" Then
If $WinE9 == "O" or $WinE9 == "X" Then
MsgBox(0, "Ende", "Spiel ist zu Ende")
MsgBox(0, "Unentschieden", "Es gibt keinen Gewinner!")
_reset()
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndSelect
EndFunc
Func Gewonnen() ;Funktion zum Überprüfen wer/ob jemand gewonnen hat;
Select
Case $Win1 == "X" And $Win2 == "X" And $Win4 == "X"
MsgBox(0, "Spiel zuende1" ,"Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win9 == "X" And $Win2 == "X" And $Win7 == "X"
MsgBox(0, "Spiel zuende", "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win1 == "X" And $Win6 == "X" And $Win7 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win1 == "X" And $Win8 == "X" And $Win9 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win9 == "X" And $Win5 == "X" And $Win4 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win7 == "X" And $Win3 == "X" And $Win4 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win8 == "X" And $Win2 == "X" And $Win3 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win6 == "X" And $Win2 == "X" And $Win5 == "X"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler X", "Gewonnen hat: " &$Spieler1)
_reset()
Case $Win1 == "O" And $Win2 == "O" And $Win4 == "O"
MsgBox(0, "Spiel zuende" ,"Spiel zuende")
MsgBox(0, "SPieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case $Win9 == "O" And $Win2 == "O" And $Win7 == "O"
MsgBox(0, "Spiel zuende", "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case $Win1 == "O" And $Win6 == "O" And $Win7 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case $Win1 == "O" And $Win8 == "O" And $Win9 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case $Win9 == "O" And $Win5 == "O" And $Win4 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case $Win7 == "O" And $Win3 == "O" And $Win4 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case $Win8 == "O" And $Win2 == "O" And $Win3 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case $Win6 == "O" And $Win2 == "O" And $Win5 == "O"
MsgBox(0, "Spiel zuende" , "Spiel zuende")
MsgBox(0, "Spieler O", "Gewonnen hat: " &$Spieler2)
_reset()
Case Else
If $Win1 == "O" or $Win1 == "X" Then ;Im Falle eines Unentschiedens;
If $Win2 == "O" or $Win2 == "X" Then
If $Win3 == "O" or $Win3 == "X" Then
If $Win4 == "O" or $Win4 == "X" Then
If $Win5 == "O" or $Win5 == "X" Then
If $Win6 == "O" or $Win6 == "X" Then
If $Win7 == "O" or $Win7 == "X" Then
If $Win8 == "O" or $Win8 == "X" Then
If $Win9 == "O" or $Win9 == "X" Then
MsgBox(0, "Ende", "Spiel ist zu Ende")
MsgBox(0, "Unentschieden", "Es gibt keinen Gewinner!")
_reset()
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndSelect
EndFunc
while 1 ;wichtig damit die GUI offen bleibt;
WEnd
Code:
Func _KiZug()
$KiZahl = random(1,9,1)
Select
Case $KiZahl == 1 And $ButtonFrei1 == ""
Sleep(500)
GUICtrlSetData($ButtonE1, "O")
$ButtonFrei1 = GUICtrlRead($ButtonE1)
$WinE1 = 1
$Spieler = 1
Case $KiZahl == 2 And $ButtonFrei2 == ""
Sleep(500)
GUICtrlSetData($ButtonE2, "O")
$ButtonFrei2 = GUICtrlRead($ButtonE2)
$WinE2 = 1
$Spieler = 1
Case $KiZahl == 3 And $ButtonFrei3 == ""
Sleep(500)
GUICtrlSetData($ButtonE3, "O")
$ButtonFrei3 = GUICtrlRead($ButtonE3)
$WinE3 = 1
$Spieler = 1
Case $KiZahl == 4 And $ButtonFrei4 == ""
Sleep(500)
GUICtrlSetData($ButtonE4, "O")
$ButtonFrei4 = GUICtrlRead($ButtonE4)
$WinE4 = 1
$Spieler = 1
Case $KiZahl == 5 And $ButtonFrei5 == ""
Sleep(500)
GUICtrlSetData($ButtonE5, "O")
$ButtonFrei5 = GUICtrlRead($ButtonE5)
$WinE5 = 1
$Spieler = 1
Case $KiZahl == 6 And $ButtonFrei6 == ""
Sleep(500)
GUICtrlSetData($ButtonE6, "O")
$ButtonFrei6 = GUICtrlRead($ButtonE6)
$Spieler = 1
$WinE6 = 1
Case $KiZahl == 7 And $ButtonFrei7 == ""
Sleep(500)
GUICtrlSetData($ButtonE7, "O")
$ButtonFrei7 = GUICtrlRead($ButtonE7)
$WinE7 = 1
$Spieler = 1
Case $KiZahl == 8 And $ButtonFrei8 == ""
Sleep(500)
GUICtrlSetData($ButtonE8, "O")
$ButtonFrei8 = GUICtrlRead($ButtonE8)
$WinE8 = 1
$Spieler = 1
Case $KiZahl == 9 And $ButtonFrei9 == ""
Sleep(500)
$ButtonFrei9 = GUICtrlRead($ButtonE9)
GUICtrlSetData($ButtonE9, "O")
$WinE9 = 1
$Spieler = 1
Case Else
_KiZug()
EndSelect
EndFunc
Danke im Vorraus
mengano








