hi,
1. ich hab ein kleines 4 Gewinnt gemacht nur habe ich einen fehler i-wie gewinnt immer spieler 2
2. vllt noch ein paar verbesserungsmöglichkeiten
#cs ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]AutoIt Version: 3.3.0.0
Author: Griss
Script Function: 4 Gewinnt
Template AutoIt script.
#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]; Script Start - Add your code below here
[/autoit][autoit][/autoit][autoit]#include <GUIConstants.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
dim $input[43]
dim $button[8]
dim $inp[43]
dim $spieler = 1, $runde = 0
dim $spalteh[8][7]
dim $spaltev[7][8]
dim $vsplate[7]
dim $hsplate[8]
dim $spaltero[13][13]
dim $spaltelo[13][13]
dim $lospalte[13]
dim $rospalte[13]
dim $mitem[4]
#Region gui
$Form2 = GUICreate("Spieler Name", 274, 131)
$GroupBox1 = GUICtrlCreateGroup("", 32, 9, 209, 81)
$Input1 = GUICtrlCreateInput("Spieler 1", 48, 24, 177, 21)
$Input2 = GUICtrlCreateInput("Spieler 2", 48, 56, 177, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("&OK", 96, 96, 73, 25, $BS_DEFPUSHBUTTON)
GUISetState(@SW_SHOW)
#EndRegion gui
while 1
$msg = guigetmsg()
if $msg = $GUI_EVENT_CLOSE then Exit
[/autoit][autoit][/autoit][autoit]if $msg = $Button1 Then
$Namesp1 = guictrlread($Input1)
$Namesp2 = guictrlread($Input2)
guictrlsetstate($Form2, @sw_hide)
ExitLoop
endif
wend
#Region ### START Koda GUI section ### Form=e:\dokumente und einstellungen\griss\desktop\koda_1.7.0.1\forms\4gewinnt verbessert2.kxf
$Form1_1 = GUICreate("Form1", 593, 314, 210, 175)
$Menu = GuiCtrlCreateMenu("&Menu")
$mitem[1] = GUICtrlCreateMenuItem("Neues Spiel Starten",$menu)
$mitem[2] = GUICtrlCreateMenuItem("Beenden",$menu)
$about = GuiCtrlCreateMenu("&About")
$Button[1] = GUICtrlCreateButton("Feld 1", 24, 8, 49, 33, 0)
$Button[2] = GUICtrlCreateButton("Feld 2", 88, 8, 49, 33, 0)
$Button[3] = GUICtrlCreateButton("Feld 3", 152, 8, 49, 33, 0)
$Button[4] = GUICtrlCreateButton("Feld 4", 216, 8, 49, 33, 0)
$Button[5] = GUICtrlCreateButton("Feld 5", 280, 8, 49, 33, 0)
$Button[6] = GUICtrlCreateButton("Feld 6", 344, 8, 49, 33, 0)
$Button[7] = GUICtrlCreateButton("Feld 7", 408, 8, 49, 33, 0)
$Input[1] = GUICtrlCreateInput("", 40, 56, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[2] = GUICtrlCreateInput("", 40, 96, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[3] = GUICtrlCreateInput("", 40, 136, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[4] = GUICtrlCreateInput("", 40, 176, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[5] = GUICtrlCreateInput("", 40, 216, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[6] = GUICtrlCreateInput("", 40, 256, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[7] = GUICtrlCreateInput("", 104, 56, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[8] = GUICtrlCreateInput("", 104, 96, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[9] = GUICtrlCreateInput("", 104, 136, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[10] = GUICtrlCreateInput("", 104, 176, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[11] = GUICtrlCreateInput("", 104, 216, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[12] = GUICtrlCreateInput("", 104, 256, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[13] = GUICtrlCreateInput("", 168, 56, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[14] = GUICtrlCreateInput("", 168, 96, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[15] = GUICtrlCreateInput("", 168, 136, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[16] = GUICtrlCreateInput("", 168, 176, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[17] = GUICtrlCreateInput("", 168, 216, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[18] = GUICtrlCreateInput("", 168, 256, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[19] = GUICtrlCreateInput("", 232, 56, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[20] = GUICtrlCreateInput("", 232, 96, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[21] = GUICtrlCreateInput("", 232, 136, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[22] = GUICtrlCreateInput("", 232, 176, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[23] = GUICtrlCreateInput("", 232, 216, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[24] = GUICtrlCreateInput("", 232, 256, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[25] = GUICtrlCreateInput("", 296, 56, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[26] = GUICtrlCreateInput("", 296, 96, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[27] = GUICtrlCreateInput("", 296, 136, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[28] = GUICtrlCreateInput("", 296, 176, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[29] = GUICtrlCreateInput("", 296, 216, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[30] = GUICtrlCreateInput("", 296, 256, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[31] = GUICtrlCreateInput("", 360, 56, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[32] = GUICtrlCreateInput("", 360, 96, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[33] = GUICtrlCreateInput("", 360, 136, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[34] = GUICtrlCreateInput("", 360, 176, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[35] = GUICtrlCreateInput("", 360, 216, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[36] = GUICtrlCreateInput("", 360, 256, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[37] = GUICtrlCreateInput("", 424, 56, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[38] = GUICtrlCreateInput("", 424, 96, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[39] = GUICtrlCreateInput("", 424, 136, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[40] = GUICtrlCreateInput("", 424, 176, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[41] = GUICtrlCreateInput("", 424, 216, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input[42] = GUICtrlCreateInput("", 424, 256, 25, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Label1 = GUICtrlCreateLabel("Runde: ", 488, 56, 50, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Am zug:", 488, 128, 51, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel(" ", 488, 160, 90, 18, $SS_CENTER)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$Label4 = GUICtrlCreateLabel(" ", 488, 88, 90, 18, $SS_CENTER)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
for $i = 1 to 42
;guictrlsetstate($Input[$i], $GUI_DISABLE)
GUICtrlSetBkColor($Input[$i], 0xFFFFFF)
next
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
guictrlsetdata($Label3 , $Namesp1&" [X]")
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
guictrlsetdata($Label4 , $runde)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
While 1
$Msg = GUIGetMsg()
for $i = 1 to 42
$inp[$i] = guictrlread($input[$i])
if $inp[$i] = "" then $inp[$i] = " "
next
if $msg = $GUI_EVENT_CLOSE then Exit
[/autoit][autoit][/autoit][autoit]if $msg = $mitem[1] Then
neu()
EndIf
if $msg = $mitem[2] Then Exit
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit];//
[/autoit][autoit][/autoit][autoit]for $i = 1 to 7
if $msg = $button[$i] Then
$h = $i * 6
if $spieler = 2 then
$runde = $runde + 1
guictrlsetdata($Label3 , $Namesp1&" [X]")
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
guictrlsetdata($Label4 , $runde)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
guisetstate(@sw_show)
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
Guictrlsetdata($Input[$h], "O")
Guictrlsetstate($button[$i],$GUI_DISABLE)
EndIf
Guictrlsetdata($Input[$h], "O")
EndIf
Guictrlsetdata($Input[$h], "O")
EndIf
Guictrlsetdata($Input[$h], "O")
EndIf
Guictrlsetdata($Input[$h], "O")
endif
Guictrlsetdata($Input[$h], "O")
$spieler = 1
elseif $spieler = 1 then
$runde = $runde + 1
guictrlsetdata($Label3 , $Namesp2&" [O]")
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
guictrlsetdata($Label4 , $runde)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
guisetstate(@sw_show)
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
if $inp[$h] <> " " Then
$h = $h -1
Guictrlsetdata($Input[$h], "X")
Guictrlsetstate($button[$i],$GUI_DISABLE)
EndIf
Guictrlsetdata($Input[$h], "X")
EndIf
Guictrlsetdata($Input[$h], "X")
EndIf
Guictrlsetdata($Input[$h], "X")
EndIf
Guictrlsetdata($Input[$h], "X")
endif
Guictrlsetdata($Input[$h], "X")
$spieler = 2
Guictrlsetdata($Input[$h], "X")
EndIf
endif
next
;msgbox(0,"",$spieler)
[/autoit][autoit][/autoit][autoit][/autoit][autoit];// Auswerten
[/autoit][autoit][/autoit][autoit]for $k = 1 to 7
if $k = 1 then $h = 6
if $k = 2 then $h = 12
if $k = 3 then $h = 18
if $k = 4 then $h = 24
if $k = 5 then $h = 30
if $k = 6 then $h = 36
if $k = 7 then $h = 42
for $i = 1 to 6
$spalteh[$k][$i] = $inp[$h]
$h = $h - 1
next
next
for $k = 1 to 6
if $k = 1 then $h = 42
if $k = 2 then $h = 41
if $k = 3 then $h = 40
if $k = 4 then $h = 39
if $k = 5 then $h = 38
if $k = 6 then $h = 37
for $i = 1 to 7
$spaltev[$k][$i] = $inp[$h]
$h = $h - 6
next
next
for $k = 1 to 12
if $k = 1 then dim $h = 1, $j = 1
if $k = 2 then dim $h = 2, $j = 2
if $k = 3 then dim $h = 3, $j = 3
if $k = 4 then dim $h = 4, $j = 4
if $k = 5 then dim $h = 5, $j = 5
if $k = 6 then dim $h = 6, $j = 6
if $k = 7 then dim $h = 12, $j = 6
if $k = 8 then dim $h = 18, $j = 5
if $k = 9 then dim $h = 24, $j = 4
if $k = 10 then dim $h = 30, $j = 3
if $k = 11 then dim $h = 36, $j = 2
if $k = 12 then dim $h = 42, $j = 1
for $i = 1 to $j
$spaltero[$k][$i] = $inp[$h]
$h = $h + 5
Next
next
for $k = 1 to 12
if $k = 1 then dim $h = 37, $j = 1
if $k = 2 then dim $h = 31, $j = 2
if $k = 3 then dim $h = 25, $j = 3
if $k = 4 then dim $h = 19, $j = 4
if $k = 5 then dim $h = 13, $j = 5
if $k = 6 then dim $h = 7, $j = 6
if $k = 7 then dim $h = 1, $j = 6
if $k = 8 then dim $h = 2, $j = 5
if $k = 9 then dim $h = 3, $j = 4
if $k = 10 then dim $h = 4, $j = 3
if $k = 11 then dim $h = 5, $j = 2
if $k = 12 then dim $h = 6, $j = 1
for $i = 1 to $j
$spaltelo[$k][$i] = $inp[$h]
$h = $h + 7
Next
next
auswerten()
WEnd
func auswerten()
[/autoit][autoit][/autoit][autoit]for $j = 1 to 6
for $i = 1 to 7
$vsplate[$j] = $vsplate[$j] & $spaltev[$j][$i]
If StringInStr($vsplate[$j], "XXXX") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
If StringInStr($vsplate[$j], "OOOO") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
Next
Next
for $j = 1 to 7
for $i = 1 to 6
$hsplate[$j] = $hsplate[$j] & $spalteh[$j][$i]
If StringInStr($hsplate[$j], "XXXX") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
If StringInStr($hsplate[$j], "OOOO") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
Next
Next
for $j = 1 to 12
for $i = 1 to 12
$rospalte[$j] = $rospalte[$j] & $spaltero[$j][$i]
If StringInStr($rospalte[$j], "XXXX") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
If StringInStr($rospalte[$j], "OOOO") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
Next
Next
for $j = 1 to 12
for $i = 1 to 12
$rospalte[$j] = $rospalte[$j] & $spaltelo[$j][$i]
If StringInStr($rospalte[$j], "XXXX") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
If StringInStr($rospalte[$j], "OOOO") Then
if $spieler = 2 then $spieler = 1
if $spieler = 1 then $spieler = 2
msgbox(0,"Gewonnen","Spieler: "&$spieler&" hat gewonnen")
exit
endif
Next
Next
for $i = 1 to 6
$vsplate[$i] = ""
Next
for $i = 1 to 7
$hsplate[$i] = ""
Next
for $i = 1 to 12
$lospalte[$i] = ""
Next
for $i = 1 to 12
$rospalte[$i] = ""
Next
endfunc
[/autoit][autoit][/autoit][autoit]func neu()
for $i = 1 to 6
$vsplate[$i] = ""
Next
for $i = 1 to 7
$hsplate[$i] = ""
Next
for $i = 1 to 12
$lospalte[$i] = ""
Next
for $i = 1 to 12
$rospalte[$i] = ""
Next
endfunc
MfG
Griss