Ich wollte heute aus langeweile Tic-Tac-Toe coden. Ich kann zwar kein GDI+, aber Tic-Tac-Toe geht ja auch mit einer Gui. Naja, ich dachte das krieg ich schnell hin, aber ich hab irgendwo einen Fehler und find den einfach nicht :pinch: Wenn man das Spiel nämlich startet und dann ein Feld anklickt, kommt, egal welcher Spieler eigt. dran wäre, Kreuz oder Kreis. Hier mein Code:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
GUICreate("Tic-Tac-Toe", 219, 219, 212, 122, BitOR($WS_SYSMENU,$WS_CAPTION))
$Pic1 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 0, 0, 73, 73)
$Pic2 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 73, 0, 73, 73)
$Pic3 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 146, 0, 73, 73)
$Pic4 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 0, 73, 73, 73)
$Pic5 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 73, 73, 73, 73)
$Pic6 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 146, 73, 73, 73)
$Pic7 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 0, 146, 73, 73)
$Pic8 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 73, 146, 73, 73)
$Pic9 = GUICtrlCreatePic(@ScriptDir&"\images\ttt.jpg", 146, 146, 73, 73)
GUISetState(@SW_SHOW)
WinSetOnTop ("Tic-Tac-Toe", "", 1)
For $x = 1 to 8
ControlClick("Tic-Tac-Toe", "", $x)
Next
Global $1 = 0
Global $2 = 0
Global $3 = 0
Global $4 = 0
Global $5 = 0
Global $6 = 0
Global $7 = 0
Global $8 = 0
Global $9 = 0
Global $p = 0
While true
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Pic1
If $p < 1 And $1 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 0, 0, 72, 72)
$p += 1
$1 += 1
ElseIf $p > 0 And $1 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 0, 0, 72, 72)
$p -= 1
$1 += 1
EndIf
Case $Pic2
If $p < 1 And $2 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 73, 0, 72, 72)
$p += 1
$2 += 1
ElseIf $p > 0 And $2 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 73, 0, 72, 72)
$p -= 1
$2 += 1
EndIf
Case $Pic3
If $p < 1 And $3 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 146, 0, 72, 72)
$p += 1
$3 += 1
ElseIf $p > 0 And $3 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 146, 0, 72, 72)
$p -= 1
$3 += 1
EndIf
Case $Pic4
If $p < 1 And $4 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 0, 73, 72, 72)
$p += 1
$4 += 1
ElseIf $p > 0 And $4 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 0, 73, 72, 72)
$p -= 1
$4 += 1
EndIf
Case $Pic5
If $p < 1 And $5 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 73, 73, 72, 72)
$p += 1
$5 += 1
ElseIf $p > 0 And $5 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 73, 73, 72, 72)
$p -= 1
$5 += 1
EndIf
Case $Pic6
If $p < 1 And $6 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 146, 73, 72, 72)
$p += 1
$6 += 1
ElseIf $p > 0 And $6 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 146, 73, 72, 72)
$p -= 1
$6 += 1
EndIf
Case $Pic7
If $p < 1 And $7 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 0, 146, 72, 72)
$p += 1
$7 += 1
ElseIf $p > 0 And $7 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 0, 146, 72, 72)
$p -= 1
$7 += 1
EndIf
Case $Pic8
If $p < 1 And $8 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 73, 146, 72, 72)
$p += 1
$8 += 1
ElseIf $p > 0 And $8 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 73, 146, 72, 72)
$p -= 1
$8 += 1
EndIf
Case $Pic9
If $p < 1 And $9 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreis.jpg", 146, 146, 72, 72)
$p += 1
$9 += 1
ElseIf $p > 0 And $9 < 2 Then
GUICtrlCreatePic(@ScriptDir&"\images\kreuz.jpg", 146, 146, 72, 72)
$p -= 1
$9 += 1
EndIf
EndSwitch
WEnd