Minesweeper in Autoit

  • Hallo,
    ich habe das Windows Standard Spiel Minesweeper nach programmiert. Ich habe zwar keine Effekte, Sound und so was mit drinne aber ich finde es trotzdem ganz gelungen ;)

    Tut mir leid das das Script unten nicht bunt ist, aber wenn ich das im Autoit-Style mit nem Spoiler in verbindung mache wird bei mir der gesamte Text nicht angezeit :huh:

    Neue Version:
    - Spiel ist auch gewonnen wenn alle Bomben markiert sind

    Spoiler anzeigen


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Images\Bombe.ico
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

    #Region Includings
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <Misc.au3>
    #Include <GuiListBox.au3>
    #include <IE.au3>
    #Include <File.au3>
    #EndRegion Includings
    #Region Variablen
    Global $Schwierigkeitsgrad
    Global $Aufgedeckt
    Global $Lade = False
    Global $Time = 0
    Global $LadeEula = 0
    Global $Minen = "X"
    #EndRegion Variablen

    #Region Config Read

    $Win_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Anfänger",0)
    $Lose_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Anfänger",0)
    $Win_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Fortgeschritten",0)
    $Lose_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Fortgeschritten",0)
    $Win_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Profi",0)
    $Lose_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Profi",0)


    $1_Time_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Anfänger","")
    $1_Date_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Anfänger","")
    $2_Time_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Anfänger","")
    $2_Date_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Anfänger","")
    $3_Time_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Anfänger","")
    $3_Date_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Anfänger","")
    $4_Time_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Anfänger","")
    $4_Date_Anfaenger = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Anfänger","")

    $1_Time_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Fortgeschritten","")
    $1_Date_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Fortgeschritten","")
    $2_Time_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Fortgeschritten","")
    $2_Date_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Fortgeschritten","")
    $3_Time_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Fortgeschritten","")
    $3_Date_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Fortgeschritten","")
    $4_Time_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Fortgeschritten","")
    $4_Date_Fortgeschritten = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Fortgeschritten","")

    $1_Time_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Profi","")
    $1_Date_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Profi","")
    $2_Time_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Profi","")
    $2_Date_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Profi","")
    $3_Time_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Profi","")
    $3_Date_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Profi","")
    $4_Time_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Profi","")
    $4_Date_Profi = IniRead(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Profi","")

    $Firstopen = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","Firstopen",1)
    $Schwierigkeitsgrad = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","Level",1)
    $oY = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","Y",9)
    $oX = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","X",9)
    $oBomben = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","Bomben",10)

    $Animationen = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","Animationen",1)
    $Sound = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","Sounds",1)
    $Tipps = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","Tipps",1)
    $GSif = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","GSif",0)
    $SbBis = IniRead(@ScriptDir & "\MineSweeper.cfg","Optionen","SbBis",0)

    #EndRegion Config Read

    #Region Gespeichertes laden
    If IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Save",0) = 1 Then
    If $GSif <> 1 Then
    $LadeEula = MsgBox(4,"Spiel fortsetzen","Wollen sie das gespeicherte Spiel weiter spielen?")
    EndIf
    If $LadeEula = 6 or $GSif = 1 Then
    $Lade = True

    $Field_X = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","X",9)
    $Field_Y = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Y",9)
    $Bomben = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Bomben",10)
    $Minen = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Minen",10)
    $Level = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Level",1)
    $Time = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Time",0)
    $iTime = $Time
    $GuiHigh = $Field_Y*20+80
    $GuiWight = $Field_X*20+40

    $Fields = $Field_X * $Field_Y - $Bomben
    Dim $ButtonArray[$Field_Y+1][$Field_X+1]
    Dim $SpielArray[$Field_Y+1][$Field_X+1]
    Dim $FlaggenArray[$Field_Y+1][$Field_X+1]

    For $y = 1 to $Field_Y
    For $x = 1 to $Field_X
    $ButtonArray[$y][$x] = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Button_" & $y & "_" & $x,-1)
    $SpielArray[$y][$x] = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Spiel_" & $y & "_" & $x,"")
    $FlaggenArray[$y][$x] = IniRead(@ScriptDir & "\MineSweeper.cfg","Savegame","Flaggen_" & $y & "_" & $x,"")
    Next
    Next
    EndIf
    EndIf
    #EndRegion Gespeichertes laden
    #Region Schwierigkeitsgrad wahl

    If $Firstopen = 1 Then
    $Form1 = GUICreate("Schwierigkeitsgrad wählen", 251, 241, 242, 231, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUICtrlCreateLabel("Wählen Sie einen Schwierigkeitsgrad:", 10, 10, 229, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
    $Button1 = GUICtrlCreateButton("Anfänger", 10, 40, 229, 40, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
    $Button2 = GUICtrlCreateButton("Fortgeschritten", 10, 90, 229, 40, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
    $Button3 = GUICtrlCreateButton("Profi", 10, 140, 229, 40, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
    $Exit = GUICtrlCreateButton("Abbrechen", 95, 201, 75, 25, 0)
    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE,$Exit
    Exit
    Case $Button1
    $Schwierigkeitsgrad = 1
    ExitLoop
    Case $Button2
    $Schwierigkeitsgrad = 2
    ExitLoop
    Case $Button3
    $Schwierigkeitsgrad = 3
    ExitLoop
    EndSwitch
    WEnd

    GUIDelete($Form1)
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Firstopen",0)
    EndIf

    #EndRegion Schwierigkeitsgrad wahl
    #Region HotKey
    HotKeySet("{F2}","_NewGame")
    HotKeySet ("{F4}","_Statistik")
    HotKeySet ("{F5}","_Optionen")
    HotKeySet ("{F1}","_Hilfe")
    HotKeySet("{F10}","Win")
    HotKeySet("{F11}","Array1")
    #EndRegion HotKey
    #Region Main Loop
    While 1

    #Region Variablen
    If Not $Lade = True Then
    If $Schwierigkeitsgrad = 1 Then
    $Field_X = 9
    $Field_Y = 9
    $GuiHigh = $Field_Y*20+80
    $GuiWight = $Field_X*20+40

    $Bomben = 10
    ElseIf $Schwierigkeitsgrad = 2 Then
    $Field_X = 16
    $Field_Y = 16
    $GuiHigh = $Field_Y*20+80
    $GuiWight = $Field_X*20+40

    $Bomben = 40
    ElseIf $Schwierigkeitsgrad = 3 Then
    $Field_X = 30
    $Field_Y = 16
    $GuiHigh = $Field_Y*20+80
    $GuiWight = $Field_X*20+40

    $Bomben = 99
    ElseIf $Schwierigkeitsgrad = 4 Then

    $Field_X = $oX
    $Field_Y = $oY
    $GuiHigh = $Field_Y*20+80
    $GuiWight = $Field_X*20+40

    $Bomben = $oBomben
    EndIf

    $Fields = $Field_X * $Field_Y - $Bomben
    Dim $ButtonArray[$Field_Y+1][$Field_X+1]
    Dim $SpielArray[$Field_Y+1][$Field_X+1]
    Dim $FlaggenArray[$Field_Y+1][$Field_X+1]
    $Minen = "X"
    $iTime = 0
    $Time = 0
    EndIf


    #EndRegion Variablen

    #Region GUI

    $MainGUI = GUICreate("Minesweeper",$GuiWight,$GuiHigh)

    $MenuItem1 = GUICtrlCreateMenu("Spiel")
    $Neues_Spiel = GUICtrlCreateMenuItem("Neues Spiel (F2)", $MenuItem1)
    $Break = GUICtrlCreateMenuItem("", $MenuItem1)
    $Statistik = GUICtrlCreateMenuItem("Statistik (F4)", $MenuItem1)
    $Optionen = GUICtrlCreateMenuItem("Optionen (F5)", $MenuItem1)
    $Break2 = GUICtrlCreateMenuItem("", $MenuItem1)
    $Beenden = GUICtrlCreateMenuItem("Beenden", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenu("?")
    $Hilfe = GUICtrlCreateMenuItem("Hilfe anzeigen (F1)", $MenuItem2)
    $Break3 = GUICtrlCreateMenuItem("", $MenuItem2)
    $Info = GUICtrlCreateMenuItem("Info", $MenuItem2)


    For $y = 1 To $Field_Y
    For $x = 1 To $Field_X
    If $ButtonArray[$y][$x] <> -1 Then
    $ButtonLeft = 20 * $x
    $ButtonTop = 20 * $y
    $NewButton = GUICtrlCreateButton("",$ButtonLeft,$ButtonTop,20,20,$BS_ICON)
    If $FlaggenArray[$y][$x] = "F" Then GUICtrlSetImage($NewButton,@ScriptDir & "\Images\Flagge2.ico")
    $ButtonArray[$y][$x] = $NewButton
    Else
    If $SpielArray[$y][$x] <> "" Then
    GUICtrlCreateIcon(@ScriptDir & "\Images\" & $SpielArray[$y][$x] & ".ico",-1,20*$x,20*$y,20,20)
    Else
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*$x,20*$y,20,20)
    EndIf
    EndIf
    Next
    Next

    GUICtrlCreateLabel("Time:",25,$GuiHigh-50,30,17)
    $Time = GUICtrlCreateLabel($Time,55,$GuiHigh-50,30,17)

    GUICtrlCreateLabel("Mines:",$GuiWight-75,$GuiHigh-50,30,17)
    If $Minen = "X" Then
    $Mines = GUICtrlCreateLabel($Bomben,$GuiWight-40,$GuiHigh-50,30,17)
    Else
    $Mines = GUICtrlCreateLabel($Minen,$GuiWight-40,$GuiHigh-50,30,17)
    EndIf

    #EndRegion GUI


    #Region Bomben ind Zahlen festlegen
    If not $Lade = True Then
    For $b = 1 To $Bomben
    While 1
    $Bomben_X = Random (1,$Field_X,1)
    $Bomben_Y = Random (1,$Field_Y,1)
    If $SpielArray[$Bomben_Y][$Bomben_X] <> "B" Then
    $SpielArray[$Bomben_Y][$Bomben_X] = "B"
    ;Zahlen Festlegen
    If $Bomben_X > 1 Then
    If $SpielArray[$Bomben_Y][$Bomben_X-1] <> "B" Then ;links
    $SpielArray[$Bomben_Y][$Bomben_X-1] = $SpielArray[$Bomben_Y][$Bomben_X-1] + 1
    EndIf
    EndIf

    If $Bomben_X > 1 And $Bomben_Y > 1 Then
    If $SpielArray[$Bomben_Y-1][$Bomben_X-1] <> "B" Then ;links oben
    $SpielArray[$Bomben_Y-1][$Bomben_X-1] = $SpielArray[$Bomben_Y-1][$Bomben_X-1] + 1
    EndIf
    EndIf

    If $Bomben_Y > 1 Then
    If $SpielArray[$Bomben_Y-1][$Bomben_X] <> "B" Then ;oben
    $SpielArray[$Bomben_Y-1][$Bomben_X] = $SpielArray[$Bomben_Y-1][$Bomben_X] + 1
    EndIf
    EndIf

    If $Bomben_Y > 1 And $Bomben_X < $Field_X Then
    If $SpielArray[$Bomben_Y-1][$Bomben_X+1] <> "B" Then ;rechts oben
    $SpielArray[$Bomben_Y-1][$Bomben_X+1] = $SpielArray[$Bomben_Y-1][$Bomben_X+1] + 1
    EndIf
    EndIf

    If $Bomben_X < $Field_X Then
    If $SpielArray[$Bomben_Y][$Bomben_X+1] <> "B" Then ;rechts
    $SpielArray[$Bomben_Y][$Bomben_X+1] = $SpielArray[$Bomben_Y][$Bomben_X+1] + 1
    EndIf
    EndIf

    If $Bomben_Y < $Field_Y And $Bomben_X < $Field_X Then
    If $SpielArray[$Bomben_Y+1][$Bomben_X+1] <> "B" Then ;rechts unten
    $SpielArray[$Bomben_Y+1][$Bomben_X+1] = $SpielArray[$Bomben_Y+1][$Bomben_X+1] + 1
    EndIf
    EndIf

    If $Bomben_Y < $Field_Y Then
    If $SpielArray[$Bomben_Y+1][$Bomben_X] <> "B" Then ;unten
    $SpielArray[$Bomben_Y+1][$Bomben_X] = $SpielArray[$Bomben_Y+1][$Bomben_X] + 1
    EndIf
    EndIf

    If $Bomben_Y < $Field_Y And $Bomben_X > 1 Then
    If $SpielArray[$Bomben_Y+1][$Bomben_X-1] <> "B" Then ;links unten
    $SpielArray[$Bomben_Y+1][$Bomben_X-1] = $SpielArray[$Bomben_Y+1][$Bomben_X-1] + 1
    EndIf
    EndIf
    ExitLoop
    EndIf
    WEnd
    Next
    EndIf

    #EndRegion Bomben ind Zahlen festlegen


    GUISetState(@SW_SHOW)

    $system32 = DllOpen("user32.dll")
    $cEula = True
    $Stop = 0
    $TimeStart = 0
    $cTime = 0
    $Lade = False

    While $Stop = 0

    If $TimeStart = 1 Then
    $TimeStart = 2
    $cTime = TimerInit()
    EndIf

    If $cTime <> 0 Then
    $NewTime = TimerDiff($cTime)+$iTime*1000
    $NewTime = $NewTime/ 1000
    $NewTime = Round($NewTime,0)
    If $NewTime <> GUICtrlRead($Time) Then GUICtrlSetData($Time,$NewTime)
    EndIf

    $Raus = 0
    $nMsg = GUIGetMsg()

    Select
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $Beenden
    $Speichern = 0
    If GUICtrlRead($Time) > 0 Then $Speichern=_Speichern()
    If $Speichern <> 2 Then Exit
    Case $nMsg = $Neues_Spiel
    If GUICtrlRead($Time) > 0 Then $Speichern = _Speichern()
    If $Speichern <> 2 Then
    If $Speichern <> 1 Then
    IniDelete(@ScriptDir & "\MineSweeper.cfg","Savegame")
    _FileWriteToLine(@ScriptDir & "\MineSweeper.cfg",1,"[Savegame]")
    EndIf
    _NewGame()
    EndIf
    Case $nMsg = $Statistik
    _Statistik()
    Case $nMsg = $Optionen
    _Optionen()
    Case $nMsg = $Hilfe
    _Hilfe()
    Case $nMsg = $Info
    $InfoGui = GUICreate("About", 320, 171, 302, 218)
    GUISetIcon("D:\006.ico")
    $GroupBox1 = GUICtrlCreateGroup("", 8, 8, 305, 109)
    $Label1 = GUICtrlCreateLabel("Product Name: Minesweeper", 152, 24, 141, 17, $WS_GROUP)
    $Label2 = GUICtrlCreateLabel("Version: 1.0", 152, 48, 60, 17, $WS_GROUP)
    $Label3 = GUICtrlCreateLabel("Copyright 2010, Jakolo", 150, 75, 112, 17, $WS_GROUP)
    $Icon1 = GUICtrlCreateIcon("C:\Users\Jakob\Desktop\Images\Bombe.ico", 0, 47, 36, 56, 53, BitOR($SS_NOTIFY,$WS_GROUP))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("&OK", 110, 139, 75, 25)
    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Button1
    GUIDelete($InfoGui)
    $nMsg = ""
    ExitLoop
    EndSwitch
    WEnd
    Case $nMsg <> $MainGUI
    For $y = 1 To UBound($ButtonArray,1)-1
    For $x = 1 To UBound ($ButtonArray,2)-1

    If $nMsg = $ButtonArray[$y][$x] Then
    If $TimeStart = 0 Then $TimeStart = 1
    If Not $FlaggenArray[$y][$x] = "F" Then
    If $SpielArray[$y][$x] = "B" Then

    ;Bombe
    For $bY = 1 To UBound($SpielArray,1)-1
    For $bX = 1 To UBound($SpielArray,2)-1
    If $SpielArray[$bY][$bX] = "B" Then
    GUICtrlDelete($ButtonArray[$bY][$bX])
    GUICtrlCreateIcon(@ScriptDir & "\Images\Bombe.ico",-1,20*$bX,20*$bY,20,20)
    $ButtonArray[$bY][$bX] = -1
    EndIf
    Next
    Next
    Switch $Schwierigkeitsgrad
    Case 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Anfänger",$Lose_Anfaenger + 1)
    $Lose_Anfaenger +=1
    Case 2
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Fortgeschritten",$Lose_Fortgeschritten + 1)
    $Lose_Fortgeschritten +=1
    Case 3
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Profi",$Lose_Profi + 1)
    $Lose_Profi +=1
    EndSwitch

    IniDelete(@ScriptDir & "\MineSweeper.cfg","Savegame")

    _FileWriteToLine(@ScriptDir & "\MineSweeper.cfg",1,"[Savegame]")

    If $Schwierigkeitsgrad <> 4 Then
    FinishBox(GUICtrlRead($Time),0)
    $cEula = False
    Else
    MsgBox(0,"Leider verloren","Sie haben leider verloren!")
    EndIf

    $Raus = 1
    ExitLoop

    ElseIf $SpielArray[$y][$x] >= 1 Then

    ;Zahl

    $Bild = GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y][$x]&".ico",-1,20*$x,20*$y,20,20)
    If $Bild <> 0 Then GUICtrlDelete($ButtonArray[$y][$x])
    $ButtonArray[$y][$x] = -1

    ElseIf $SpielArray[$y][$x] = "" Then

    ;Nichts

    If $ButtonArray[$y][$x] <> "" And $ButtonArray[$y][$x] <> -1 Then
    GUICtrlDelete($ButtonArray[$y][$x])
    $Icon = GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*$x,20*$y,20,20)
    If $Icon = 0 Then MsgBox(0,"",$SpielArray[$y][$x])
    $ButtonArray[$y][$x] = ""
    ElseIf $ButtonArray[$y][$x] = "" Then
    $ButtonArray[$y][$x] = -1
    EndIf
    Umliegende_Felder_Aufdecken($x,$y)
    EndIf
    EndIf
    EndIf

    Next
    If $Raus = 1 Then ExitLoop
    Next
    If $Raus = 1 Then ExitLoop
    EndSelect

    ;Fertig
    $Aufgedeckt = 0
    For $y = 1 To UBound($ButtonArray,1)-1
    For $x = 1 To UBound ($ButtonArray,2)-1
    If $ButtonArray[$y][$x] = -1 Then $Aufgedeckt += 1
    Next
    Next

    If $Aufgedeckt = $Fields Then
    Fertig()
    ExitLoop
    EndIf

    ;Flagge
    $Mouse = GUIGetCursorInfo($MainGUI)
    If _IsPressed(02,$system32) Then
    For $y = 1 To UBound($ButtonArray,1)-1
    For $x = 1 To UBound ($ButtonArray,2)-1
    If $Mouse[4] = $ButtonArray[$y][$x] Then
    If $TimeStart = 0 Then $TimeStart = 1
    If $FlaggenArray[$y][$x] = "F" Then
    GUICtrlDelete($ButtonArray[$y][$x])
    $NewButton = GUICtrlCreateButton("",20*$x,20*$y,20,20,$BS_ICON)
    $ButtonArray[$y][$x] = $NewButton
    $FlaggenArray[$y][$x] = ""
    GUICtrlSetData($Mines,GUICtrlRead($Mines)+1)
    Sleep(200)
    Else
    $FlaggenArray[$y][$x] = "F"
    GUICtrlSetImage($ButtonArray[$y][$x],@ScriptDir & "\Images\Flagge2.ico")
    GUICtrlSetData($Mines,GUICtrlRead($Mines)-1)
    Sleep(200)
    EndIf
    EndIf
    Next
    Next
    EndIf

    ;Alle Minen makiert
    $FlaggenFelder = 0
    $BombenFelder = 0
    For $y = 1 To UBound($ButtonArray,1)-1
    For $x = 1 To UBound ($ButtonArray,2)-1
    If $SpielArray[$y][$x] = "B" Then
    $BombenFelder += 1
    If $FlaggenArray[$y][$x] = "F" Then
    $FlaggenFelder += 1
    EndIf
    EndIf
    Next
    Next
    If $FlaggenFelder = $BombenFelder Then
    Fertig()
    ExitLoop
    EndIf

    WEnd

    If Not $cEula = False Then
    $Eula = MsgBox(4,"Nochmal spielen?","Wollen Sie MineSweeper nochmal spielen?")
    If $Eula = 7 Then Exit
    EndIf
    GUIDelete($MainGUI)
    WEnd
    #EndRegion Main Loop
    #Region Funktionen

    Func Fertig()
    $Zeit = GUICtrlRead($Time)
    $NewHighscore = False
    Switch $Schwierigkeitsgrad
    Case 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Anfänger",$Win_Anfaenger + 1)
    $Win_Anfaenger +=1
    Select
    Case $Zeit < $1_Time_Anfaenger Or $1_Time_Anfaenger = ""
    $NewHighscore = True

    $1_Time_Anfaenger = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Anfänger",$Zeit)
    $1_Date_Anfaenger = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Anfänger",$1_Date_Anfaenger)
    Case $Zeit < $2_Time_Anfaenger Or $2_Time_Anfaenger = ""

    $2_Time_Anfaenger = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Anfänger",$Zeit)
    $2_Date_Anfaenger = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Anfänger",$2_Date_Anfaenger)

    Case $Zeit < $3_Time_Anfaenger Or $3_Time_Anfaenger = ""

    $3_Time_Anfaenger = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Anfänger",$Zeit)
    $3_Date_Anfaenger = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Anfänger",$3_Date_Anfaenger)

    Case $Zeit < $4_Time_Anfaenger or $4_Time_Anfaenger= ""

    $4_Time_Anfaenger = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Anfänger",$Zeit)
    $4_Date_Anfaenger = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Anfänger",$4_Date_Anfaenger)

    EndSelect
    Case 2
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Fortgeschritten",$Win_Fortgeschritten + 1)
    $Win_Fortgeschritten +=1

    Select
    Case $Zeit < $1_Time_Fortgeschritten or $1_Time_Fortgeschritten = ""
    $NewHighscore = True

    $1_Time_Fortgeschritten = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Fortgeschritten",$Zeit)
    $1_Date_Fortgeschritten = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Fortgeschritten",$1_Date_Fortgeschritten)
    Case $Zeit < $2_Time_Fortgeschritten or $2_Time_Fortgeschritten = ""

    $2_Time_Fortgeschritten = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Fortgeschritten",$Zeit)
    $2_Date_Fortgeschritten = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Fortgeschritten",$2_Date_Fortgeschritten)

    Case $Zeit < $3_Time_Fortgeschritten or $3_Time_Fortgeschritten = ""

    $3_Time_Fortgeschritten = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Fortgeschritten",$Zeit)
    $3_Date_Fortgeschritten = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Fortgeschritten",$3_Date_Fortgeschritten)

    Case $Zeit < $4_Time_Fortgeschritten or $4_Time_Fortgeschritten = ""

    $4_Time_Fortgeschritten = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Fortgeschritten",$Zeit)
    $4_Date_Fortgeschritten = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Fortgeschritten",$4_Date_Fortgeschritten)

    EndSelect

    Case 3
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Profi",$Win_Profi + 1)
    $Win_Profi +=1

    Select
    Case $Zeit < $1_Time_Profi or $1_Time_Profi = ""
    $NewHighscore = True

    $1_Time_Profi = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Profi",$Zeit)
    $1_Date_Profi = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Profi",$1_Date_Profi)
    Case $Zeit < $2_Time_Profi or $2_Time_Profi = ""

    $2_Time_Profi = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Profi",$Zeit)
    $2_Date_Profi = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Profi",$2_Date_Profi)

    Case $Zeit < $3_Time_Profi or $3_Time_Profi = ""

    $3_Time_Profi = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Profi",$Zeit)
    $3_Date_Profi = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Profi",$3_Date_Profi)

    Case $Zeit < $4_Time_Profi or $4_Time_Profi = ""

    $4_Time_Profi = $Zeit
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Profi",$Zeit)
    $4_Date_Profi = @MDAY & "." & @MON & "." & @YEAR
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Profi",$4_Date_Profi)
    EndSelect

    EndSwitch

    If $NewHighscore = True Then MsgBox(0,"Neuer Highscore","Herzlichen Glückwunsch! Sie haben einen neuen Highscore geschafft!")

    IniDelete(@ScriptDir & "\MineSweeper.cfg","Savegame")
    _FileWriteToLine(@ScriptDir & "\MineSweeper.cfg",1,"[Savegame]")

    If $Schwierigkeitsgrad <> 4 Then
    FinishBox(GUICtrlRead($Time),1)
    $cEula = False
    Else
    MsgBox (0,"Fertig!","Sie haben gewonnen herzlichen Glückwunsch!")
    EndIf
    EndFunc

    Func Umliegende_Felder_Aufdecken($x,$y)
    If $x > 1 Then ;links
    If $SpielArray[$y][$x-1] <> "B" Then
    If $SpielArray[$y][$x-1] >= 1 Then

    If $ButtonArray[$y][$x-1] <> "" And $ButtonArray[$y][$x-1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y][$x-1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y][$x-1]&".ico",-1,20*($x-1),20*$y,20,20)
    $ButtonArray[$y][$x-1] = ""
    EndIf

    Else

    If $ButtonArray[$y][$x-1] <> "" And $ButtonArray[$y][$x-1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y][$x-1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*($x-1),20*$y,20,20)
    $ButtonArray[$y][$x-1] = ""
    EndIf

    EndIf
    EndIf
    EndIf

    If $x > 1 And $y > 1 Then ;links oben
    If $SpielArray[$y-1][$x-1] <> "B" Then
    If $SpielArray[$y-1][$x-1] >= 1 Then

    If $ButtonArray[$y-1][$x-1] <> "" And $ButtonArray[$y-1][$x-1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y-1][$x-1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y-1][$x-1]&".ico",-1,20*($x-1),20*($y-1),20,20)
    $ButtonArray[$y-1][$x-1] = ""
    EndIf

    Else

    If $ButtonArray[$y-1][$x-1] <> "" And $ButtonArray[$y-1][$x-1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y-1][$x-1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*($x-1),20*($y-1),20,20)
    $ButtonArray[$y-1][$x-1] = ""
    EndIf

    EndIf
    EndIf
    EndIf

    If $y > 1 Then ;oben
    If $SpielArray[$y-1][$x] <> "B" Then
    If $SpielArray[$y-1][$x] >= 1 Then

    If $ButtonArray[$y-1][$x] <> "" And $ButtonArray[$y-1][$x] <> -1 Then
    GUICtrlDelete($ButtonArray[$y-1][$x])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y-1][$x]&".ico",-1,20*$x,20*($y-1),20,20)
    $ButtonArray[$y-1][$x] = ""
    EndIf

    Else

    If $ButtonArray[$y-1][$x] <> "" And $ButtonArray[$y-1][$x] <> -1 Then
    GUICtrlDelete($ButtonArray[$y-1][$x])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*$x,20*($y-1),20,20)
    $ButtonArray[$y-1][$x] = ""
    EndIf

    EndIf
    EndIf
    EndIf

    If $y > 1 And $x < $Field_X Then ;rechts oben
    If $SpielArray[$y-1][$x+1] <> "B" Then
    If $SpielArray[$y-1][$x+1] >= 1 Then

    If $ButtonArray[$y-1][$x+1] <> "" And $ButtonArray[$y-1][$x+1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y-1][$x+1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y-1][$x+1]&".ico",-1,20*($x+1),20*($y-1),20,20)
    $ButtonArray[$y-1][$x+1] = ""
    EndIf

    Else

    If $ButtonArray[$y-1][$x+1] <> "" And $ButtonArray[$y-1][$x+1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y-1][$x+1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*($x+1),20*($y-1),20,20)
    $ButtonArray[$y-1][$x+1] = ""
    EndIf

    EndIf
    EndIf
    EndIf

    If $x < $Field_X Then ;rechts
    If $SpielArray[$y][$x+1] <> "B" Then
    If $SpielArray[$y][$x+1] >= 1 Then

    If $ButtonArray[$y][$x+1] <> "" And $ButtonArray[$y][$x+1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y][$x+1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y][$x+1]&".ico",-1,20*($x+1),20*$y,20,20)
    $ButtonArray[$y][$x+1] = ""
    EndIf

    Else

    If $ButtonArray[$y][$x+1] <> "" And $ButtonArray[$y][$x+1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y][$x+1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*($x+1),20*$y,20,20)
    $ButtonArray[$y][$x+1] = ""
    EndIf

    EndIf
    EndIf
    EndIf

    If $y < $Field_Y And $x < $Field_X Then ;rechts unten
    If $SpielArray[$y+1][$x+1] <> "B" Then
    If $SpielArray[$y+1][$x+1] >= 1 Then

    If $ButtonArray[$y+1][$x+1] <> "" And $ButtonArray[$y+1][$x+1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y+1][$x+1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y+1][$x+1]&".ico",-1,20*($x+1),20*($y+1),20,20)
    $ButtonArray[$y+1][$x+1] = ""
    EndIf

    Else

    If $ButtonArray[$y+1][$x+1] <> "" And $ButtonArray[$y+1][$x+1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y+1][$x+1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*($x+1),20*($y+1),20,20)
    $ButtonArray[$y+1][$x+1] = ""
    EndIf

    EndIf
    EndIf
    EndIf

    If $y < $Field_Y Then ;unten
    If $SpielArray[$y+1][$x] <> "B" Then
    If $SpielArray[$y+1][$x] >= 1 Then

    If $ButtonArray[$y+1][$x] <> "" And $ButtonArray[$y+1][$x] <> -1 Then
    GUICtrlDelete($ButtonArray[$y+1][$x])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y+1][$x]&".ico",-1,20*$x,20*($y+1),20,20)
    $ButtonArray[$y+1][$x] = ""
    EndIf

    Else

    If $ButtonArray[$y+1][$x] <> "" And $ButtonArray[$y+1][$x] <> -1 Then
    GUICtrlDelete($ButtonArray[$y+1][$x])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*$x,20*($y+1),20,20)
    $ButtonArray[$y+1][$x] = ""
    EndIf
    EndIf
    EndIf
    EndIf

    If $y < $Field_Y And $x > 1 Then ;links unten
    If $SpielArray[$y+1][$x-1] <> "B" Then
    If $SpielArray[$y+1][$x-1] >= 1 Then

    If $ButtonArray[$y+1][$x-1] <> "" And $ButtonArray[$y+1][$x-1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y+1][$x-1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\"&$SpielArray[$y+1][$x-1]&".ico",-1,20*($x-1),20*($y+1),20,20)
    $ButtonArray[$y+1][$x-1] = ""
    EndIf
    Else

    If $ButtonArray[$y+1][$x-1] <> "" And $ButtonArray[$y+1][$x-1] <> -1 Then
    GUICtrlDelete($ButtonArray[$y+1][$x-1])
    GUICtrlCreateIcon(@ScriptDir & "\Images\0.ico",-1,20*($x-1),20*($y+1),20,20)
    $ButtonArray[$y+1][$x-1] = ""
    EndIf
    EndIf
    EndIf
    EndIf
    EndFunc

    Func _NewGame()
    $cEula = False
    $Stop = 1
    EndFunc

    Func _Statistik()

    $StatistikGUI = GUICreate("Minesweeper-Statistik - " & @UserName, 527, 140, 191, 166, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS))
    $List1 = GUICtrlCreateList("", 11, 10, 137, 58)
    GUICtrlSetData(-1, "Anfänger|Fortgeschritten|Profi")
    $Group1 = GUICtrlCreateGroup("Bestzeit", 159, 10, 204, 88)
    $Label9 = GUICtrlCreateLabel("", 169, 25, 22, 17)
    $Label10 = GUICtrlCreateLabel("", 169, 40, 22, 17)
    $Label11 = GUICtrlCreateLabel("", 169, 55, 22, 17)
    $Label12 = GUICtrlCreateLabel("", 169, 70, 22, 17)
    $Label13 = GUICtrlCreateLabel("", 226, 25, 58, 17)
    $Label14 = GUICtrlCreateLabel("", 226, 40, 58, 17)
    $Label15 = GUICtrlCreateLabel("", 226, 55, 58, 17)
    $Label16 = GUICtrlCreateLabel("", 226, 70, 58, 17)
    $Label1 = GUICtrlCreateLabel("Gespielte Spiele:", 372, 21, 83, 17)
    $Label2 = GUICtrlCreateLabel("Gewonnene Spiele:", 372, 39, 97, 17)
    $Label3 = GUICtrlCreateLabel("", 454, 21, 20, 17)
    $Label4 = GUICtrlCreateLabel("", 470, 39, 20, 17)
    $Label5 = GUICtrlCreateLabel("Gewonnen:", 372, 57, 59, 17)
    $Label6 = GUICtrlCreateLabel("", 431, 57, 30, 17)
    $Label7 = GUICtrlCreateLabel("Verlorene Spiele:", 372, 74, 84, 17)
    $Label8 = GUICtrlCreateLabel("", 456, 74, 20, 17)
    $Button1 = GUICtrlCreateButton("Schließen", 241, 108, 135, 25, 0)
    $Button2 = GUICtrlCreateButton("Zurücksetzten", 381, 108, 135, 25, 0)

    Switch GUICtrlRead($List1)
    Case "Anfänger"
    GUICtrlSetData($Label9,$1_Time_Anfaenger)
    GUICtrlSetData($Label10 ,$2_Time_Anfaenger)
    GUICtrlSetData($Label11 , $3_Time_Anfaenger)
    GUICtrlSetData($Label12 , $4_Time_Anfaenger)
    GUICtrlSetData($Label13 , $1_Date_Anfaenger)
    GUICtrlSetData($Label14 , $2_Date_Anfaenger)
    GUICtrlSetData($Label15 , $3_Date_Anfaenger)
    GUICtrlSetData($Label16 , $4_Date_Anfaenger)

    GUICtrlSetData($Label3,$Win_Anfaenger+$Lose_Anfaenger)
    GUICtrlSetData($Label4,$Win_Anfaenger)
    $Gewinn = $Win_Anfaenger/($Win_Anfaenger + $Lose_Anfaenger)
    If $Win_Anfaenger + $Lose_Anfaenger = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label6,$Gewinn & "%")
    GUICtrlSetData($Label8,$Lose_Anfaenger)

    Case "Fortgeschritten"
    GUICtrlSetData($Label9 ,$1_Time_Fortgeschritten)
    GUICtrlSetData($Label10 , $2_Time_Fortgeschritten)
    GUICtrlSetData($Label11 , $3_Time_Fortgeschritten)
    GUICtrlSetData($Label12 , $4_Time_Fortgeschritten)
    GUICtrlSetData($Label13 , $1_Date_Fortgeschritten)
    GUICtrlSetData($Label14 , $2_Date_Fortgeschritten)
    GUICtrlSetData($Label15 , $3_Date_Fortgeschritten)
    GUICtrlSetData($Label16 , $4_Date_Fortgeschritten)

    GUICtrlSetData($Label3,$Win_Fortgeschritten+$Lose_Fortgeschritten)
    GUICtrlSetData($Label4,$Win_Fortgeschritten)
    $Gewinn = $Win_Fortgeschritten/($Win_Fortgeschritten + $Lose_Fortgeschritten)
    If $Win_Fortgeschritten + $Lose_Fortgeschritten = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label6,$Gewinn & "%")
    GUICtrlSetData($Label8,$Lose_Fortgeschritten)

    Case "Profi"
    GUICtrlSetData($Label9 , $1_Time_Profi)
    GUICtrlSetData($Label10 , $2_Time_Profi)
    GUICtrlSetData($Label11 , $3_Time_Profi)
    GUICtrlSetData($Label12 , $4_Time_Profi)
    GUICtrlSetData($Label13 , $1_Date_Profi)
    GUICtrlSetData($Label14 , $2_Date_Profi)
    GUICtrlSetData($Label15 , $3_Date_Profi)
    GUICtrlSetData($Label16 , $4_Date_Profi)

    GUICtrlSetData($Label3,$Win_Profi+$Lose_Profi)
    GUICtrlSetData($Label4,$Win_Profi)
    $Gewinn = $Win_Profi/($Win_Profi + $Lose_Profi)
    If $Win_Profi + $Lose_Profi = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label6,$Gewinn & "%")
    GUICtrlSetData($Label8,$Lose_Profi)

    EndSwitch
    GUISetState(@SW_SHOW)


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE,$Button1
    ExitLoop
    Case $Button2
    GUICtrlSetData($Label9,"")
    GUICtrlSetData($Label10 ,"")
    GUICtrlSetData($Label11 ,"")
    GUICtrlSetData($Label12 , "")
    GUICtrlSetData($Label13 , "")
    GUICtrlSetData($Label14 ,"")
    GUICtrlSetData($Label15 ,"")
    GUICtrlSetData($Label16 ,"")

    GUICtrlSetData($Label3 ,"0")
    GUICtrlSetData($Label4 ,"0")
    GUICtrlSetData($Label6 ,"0%")
    GUICtrlSetData($Label8 ,"0")

    Switch GUICtrlRead($List1)
    Case "Anfänger"
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Anfänger","")
    $1_Time_Anfaenger = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Anfänger","")
    $1_Date_Anfaenger = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Anfänger","")
    $2_Time_Anfaenger = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Anfänger","")
    $2_Date_Anfaenger = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Anfänger","")
    $3_Time_Anfaenger = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Anfänger","")
    $3_Date_Anfaenger = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Anfänger","")
    $4_Time_Anfaenger = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Anfänger","")
    $4_Date_Anfaenger = ""

    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Anfänger",0)
    $Win_Anfaenger = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Anfänger",0)
    $Lose_Anfaenger = 0

    Case "Fortgeschritten"
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Fortgeschritten","")
    $1_Time_Fortgeschritten = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Fortgeschritten","")
    $1_Date_Fortgeschritten = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Fortgeschritten","")
    $2_Time_Fortgeschritten = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Fortgeschritten","")
    $2_Date_Fortgeschritten = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Fortgeschritten","")
    $3_Time_Fortgeschritten = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Fortgeschritten","")
    $3_Date_Fortgeschritten = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Fortgeschritten","")
    $4_Time_Fortgeschritten = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Fortgeschritten","")
    $4_Date_Fortgeschritten = ""

    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Fortgeschritten",0)
    $Win_Fortgeschritten = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Fortgeschritten",0)
    $Lose_Fortgeschritten = 0

    Case "Profi"
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Time_Profi","")
    $1_Time_Profi = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","1_Date_Profi","")
    $1_Date_Profi = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Time_Profi","")
    $2_Time_Profi = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","2_Date_Profi","")
    $2_Date_Profi = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Time_Profi","")
    $3_Time_Profi = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","3_Date_Profi","")
    $3_Date_Profi = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Time_Profi","")
    $4_Time_Profi = ""
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","4_Date_Profi","")
    $4_Date_Profi = ""

    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Win_Profi",0)
    $Win_Profi = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Statistik","Lose_Profi",0)
    $Lose_Profi = 0

    EndSwitch

    Case $List1
    Switch GUICtrlRead($List1)
    Case "Anfänger"
    GUICtrlSetData($Label9,$1_Time_Anfaenger)
    GUICtrlSetData($Label10 ,$2_Time_Anfaenger)
    GUICtrlSetData($Label11 , $3_Time_Anfaenger)
    GUICtrlSetData($Label12 , $4_Time_Anfaenger)
    GUICtrlSetData($Label13 , $1_Date_Anfaenger)
    GUICtrlSetData($Label14 , $2_Date_Anfaenger)
    GUICtrlSetData($Label15 , $3_Date_Anfaenger)
    GUICtrlSetData($Label16 , $4_Date_Anfaenger)

    GUICtrlSetData($Label3,$Win_Anfaenger+$Lose_Anfaenger)
    GUICtrlSetData($Label4,$Win_Anfaenger)
    $Gewinn = $Win_Anfaenger/($Win_Anfaenger + $Lose_Anfaenger)
    If $Win_Anfaenger + $Lose_Anfaenger = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label6,$Gewinn & "%")
    GUICtrlSetData($Label8,$Lose_Anfaenger)

    Case "Fortgeschritten"
    GUICtrlSetData($Label9 ,$1_Time_Fortgeschritten)
    GUICtrlSetData($Label10 , $2_Time_Fortgeschritten)
    GUICtrlSetData($Label11 , $3_Time_Fortgeschritten)
    GUICtrlSetData($Label12 , $4_Time_Fortgeschritten)
    GUICtrlSetData($Label13 , $1_Date_Fortgeschritten)
    GUICtrlSetData($Label14 , $2_Date_Fortgeschritten)
    GUICtrlSetData($Label15 , $3_Date_Fortgeschritten)
    GUICtrlSetData($Label16 , $4_Date_Fortgeschritten)

    GUICtrlSetData($Label3,$Win_Fortgeschritten+$Lose_Fortgeschritten)
    GUICtrlSetData($Label4,$Win_Fortgeschritten)
    $Gewinn = $Win_Fortgeschritten/($Win_Fortgeschritten + $Lose_Fortgeschritten)
    If $Win_Fortgeschritten + $Lose_Fortgeschritten = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label6,$Gewinn & "%")
    GUICtrlSetData($Label8,$Lose_Fortgeschritten)

    Case "Profi"
    GUICtrlSetData($Label9 , $1_Time_Profi)
    GUICtrlSetData($Label10 , $2_Time_Profi)
    GUICtrlSetData($Label11 , $3_Time_Profi)
    GUICtrlSetData($Label12 , $4_Time_Profi)
    GUICtrlSetData($Label13 , $1_Date_Profi)
    GUICtrlSetData($Label14 , $2_Date_Profi)
    GUICtrlSetData($Label15 , $3_Date_Profi)
    GUICtrlSetData($Label16 , $4_Date_Profi)

    GUICtrlSetData($Label3,$Win_Profi+$Lose_Profi)
    GUICtrlSetData($Label4,$Win_Profi)
    $Gewinn = $Win_Profi/($Win_Profi + $Lose_Profi)
    If $Win_Profi + $Lose_Profi = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label6,$Gewinn & "%")
    GUICtrlSetData($Label8,$Lose_Profi)
    EndSwitch
    EndSwitch
    WEnd
    GUIDelete($StatistikGUI)
    $nMsg = ""
    EndFunc

    Func _Optionen()
    GUISetState($MainGUI,@SW_DISABLE)

    $OptionenGUI = GUICreate("Optionen", 384, 360, 192, 154, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUICtrlCreateGroup("Schwierigkeitsgrad", 12, 10, 360, 176)
    $Anfaenger = GUICtrlCreateRadio("Anfänger"&@CRLF&"10 Minen"&@CRLF&"9 x 9 Spielfeldraster", 25, 40, 155, 42, BitOR($BS_AUTORADIOBUTTON,$BS_MULTILINE))
    $Fortgeschritten = GUICtrlCreateRadio("Fortgeschritten" & @CRLF & "40 Minen" & @CRLF & "16 x 16 Spielfeldraster", 25, 89, 155, 42, BitOR($BS_AUTORADIOBUTTON,$BS_MULTILINE))
    $Profi = GUICtrlCreateRadio("Profi" & @CRLF & "99 Minen" & @CRLF & "16 x 30 Spielfeldraster", 25, 137, 155, 42, BitOR($BS_AUTORADIOBUTTON,$BS_MULTILINE))
    $Benutzerdefiniert = GUICtrlCreateRadio("Benutzerdefiniert", 185, 40, 173, 16)
    $Label1 = GUICtrlCreateLabel("Höhe (9-24):", 203, 65, 63, 17)
    $Label2 = GUICtrlCreateLabel("Breite (9-30):", 203, 95, 64, 17)
    $Label3 = GUICtrlCreateLabel("Minen (10-668):", 203, 124, 78, 17)
    $Input1 = GUICtrlCreateInput($oY, 302, 62, 60, 21)
    $Input2 = GUICtrlCreateInput($oX, 302, 91, 60, 21)
    $Input3 = GUICtrlCreateInput($oBomben, 302, 121, 60, 21)
    $Checkbox1 = GUICtrlCreateCheckbox("Animationen anzeigen", 23, 198, 206, 17)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $Checkbox2 = GUICtrlCreateCheckbox("Sounds wiedergeben", 23, 223, 258, 17)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $Checkbox3 = GUICtrlCreateCheckbox("Tipps anzeigen", 23, 247, 234, 17)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $Checkbox4 = GUICtrlCreateCheckbox("Gespeichertes Spiel immer fortsetzen", 23, 271, 208, 17)
    $Checkbox5 = GUICtrlCreateCheckbox("Spiel beim Beenden immer speichern", 23, 296, 297, 17)
    $Button1 = GUICtrlCreateButton("Speichern", 143, 325, 108, 23, 0)
    $Button2 = GUICtrlCreateButton("Abbrechen", 257, 325, 108, 23, 0)

    Switch $Schwierigkeitsgrad
    Case 1
    GUICtrlSetState($Anfaenger,$GUI_CHECKED)

    GUICtrlSetState($Label1,$GUI_DISABLE)
    GUICtrlSetState($Label2,$GUI_DISABLE)
    GUICtrlSetState($Label3,$GUI_DISABLE)
    GUICtrlSetState($Input1,$GUI_DISABLE)
    GUICtrlSetState($Input2,$GUI_DISABLE)
    GUICtrlSetState($Input3,$GUI_DISABLE)

    Case 2
    GUICtrlSetState($Fortgeschritten,$GUI_CHECKED)

    GUICtrlSetState($Label1,$GUI_DISABLE)
    GUICtrlSetState($Label2,$GUI_DISABLE)
    GUICtrlSetState($Label3,$GUI_DISABLE)
    GUICtrlSetState($Input1,$GUI_DISABLE)
    GUICtrlSetState($Input2,$GUI_DISABLE)
    GUICtrlSetState($Input3,$GUI_DISABLE)

    Case 3
    GUICtrlSetState($Profi,$GUI_CHECKED)

    GUICtrlSetState($Label1,$GUI_DISABLE)
    GUICtrlSetState($Label2,$GUI_DISABLE)
    GUICtrlSetState($Label3,$GUI_DISABLE)
    GUICtrlSetState($Input1,$GUI_DISABLE)
    GUICtrlSetState($Input2,$GUI_DISABLE)
    GUICtrlSetState($Input3,$GUI_DISABLE)

    Case 4
    GUICtrlSetState($Benutzerdefiniert,$GUI_CHECKED)

    GUICtrlSetState($Label1,$GUI_ENABLE)
    GUICtrlSetState($Label2,$GUI_ENABLE)
    GUICtrlSetState($Label3,$GUI_ENABLE)
    GUICtrlSetState($Input1,$GUI_ENABLE)
    GUICtrlSetState($Input2,$GUI_ENABLE)
    GUICtrlSetState($Input3,$GUI_ENABLE)
    EndSwitch

    If $Animationen = 1 Then
    GUICtrlSetState($Checkbox1,$GUI_CHECKED)
    EndIf
    If $Sound = 1 Then
    GUICtrlSetState($Checkbox2,$GUI_CHECKED)
    EndIf
    If $Tipps = 1 Then
    GUICtrlSetState($Checkbox3,$GUI_CHECKED)
    EndIf
    If $GSif = 1 Then
    GUICtrlSetState($Checkbox4,$GUI_CHECKED)
    EndIf
    If $SbBis = 1 Then
    GUICtrlSetState($Checkbox5,$GUI_CHECKED)
    EndIf
    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3, $Button2
    ExitLoop
    Case $Anfaenger
    GUICtrlSetState($Label1,$GUI_DISABLE)
    GUICtrlSetState($Label2,$GUI_DISABLE)
    GUICtrlSetState($Label3,$GUI_DISABLE)
    GUICtrlSetState($Input1,$GUI_DISABLE)
    GUICtrlSetState($Input2,$GUI_DISABLE)
    GUICtrlSetState($Input3,$GUI_DISABLE)
    Case $Fortgeschritten
    GUICtrlSetState($Label1,$GUI_DISABLE)
    GUICtrlSetState($Label2,$GUI_DISABLE)
    GUICtrlSetState($Label3,$GUI_DISABLE)
    GUICtrlSetState($Input1,$GUI_DISABLE)
    GUICtrlSetState($Input2,$GUI_DISABLE)
    GUICtrlSetState($Input3,$GUI_DISABLE)
    Case $Profi
    GUICtrlSetState($Label1,$GUI_DISABLE)
    GUICtrlSetState($Label2,$GUI_DISABLE)
    GUICtrlSetState($Label3,$GUI_DISABLE)
    GUICtrlSetState($Input1,$GUI_DISABLE)
    GUICtrlSetState($Input2,$GUI_DISABLE)
    GUICtrlSetState($Input3,$GUI_DISABLE)
    Case $Benutzerdefiniert
    GUICtrlSetState($Label1,$GUI_ENABLE)
    GUICtrlSetState($Label2,$GUI_ENABLE)
    GUICtrlSetState($Label3,$GUI_ENABLE)
    GUICtrlSetState($Input1,$GUI_ENABLE)
    GUICtrlSetState($Input2,$GUI_ENABLE)
    GUICtrlSetState($Input3,$GUI_ENABLE)
    Case $Input1
    If GUICtrlRead($Input1) > 24 Then
    GUICtrlSetData($Input1,24)
    ElseIf GUICtrlRead($Input1) < 9 Then
    GUICtrlSetData($Input1,9)
    EndIf
    Case $Input2
    If GUICtrlRead($Input2) > 30 Then
    GUICtrlSetData($Input2,30)
    ElseIf GUICtrlRead($Input2) < 9 Then
    GUICtrlSetData($Input2,9)
    EndIf
    Case $Input3
    If GUICtrlRead($Input3) > 688 Then
    GUICtrlSetData($Input3,688)
    ElseIf GUICtrlRead($Input3) < 10 Then
    GUICtrlSetData($Input3,10)
    EndIf
    Case $Button1
    If GUICtrlRead($Anfaenger) = $GUI_CHECKED Then
    If $Schwierigkeitsgrad <> 1 Then $NewGame = True
    $Schwierigkeitsgrad = 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Level",1)
    ElseIf GUICtrlRead($Fortgeschritten) = $GUI_CHECKED Then
    If $Schwierigkeitsgrad <> 2 Then $NewGame = True
    $Schwierigkeitsgrad = 2
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Level",2)
    ElseIf GUICtrlRead($Profi) = $GUI_CHECKED Then
    If $Schwierigkeitsgrad <> 3 Then $NewGame = True
    $Schwierigkeitsgrad = 3
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Level",3)
    ElseIf GUICtrlRead($Benutzerdefiniert) = $GUI_CHECKED Then
    $NewGame = True
    $Schwierigkeitsgrad = 4
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Level",4)
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","X",GUICtrlRead($Input2))
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Y",GUICtrlRead($Input1))
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Bomben",GUICtrlRead($Input3))
    $oBomben = GUICtrlRead($Input3)
    $oX = GUICtrlRead($Input2)
    $oY = GUICtrlRead($Input1)
    EndIf

    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    $Animationen = 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Animationen",1)
    Else
    $Animationen = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Animationen",0)
    EndIf

    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    $Sound = 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Sounds",1)
    Else
    $Sound = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Sounds",0)
    EndIf

    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
    $Tipps = 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Tipps",1)
    Else
    $Tipps = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","Tipps",0)
    EndIf

    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
    $GSif = 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","GSif",1)
    Else
    $GSif = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","GSif",0)
    EndIf

    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
    $SbBis = 1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","SbBis",1)
    Else
    $SbBis = 0
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Optionen","SbBis",0)
    EndIf

    ExitLoop

    EndSwitch
    WEnd

    GUIDelete($OptionenGUI)
    GUISetState($MainGUI,@SW_ENABLE)
    $nMsg = ""
    _NewGame()
    EndFunc

    Func _Hilfe()
    _IECreate("http://de.wikipedia.org/wiki/Minesweeper")
    EndFunc

    Func FinishBox($Time,$iOption = 0)
    $FinishGUI = GUICreate("24ü242üpl", 402, 168, 192, 154)
    $Label1 = GUICtrlCreateLabel("Leider verloren. Spielen Sie noch einmal.", 89, 15, 196, 17)
    $Label2 = GUICtrlCreateLabel("Zeit: X Sekunden", 17, 46, 323, 17)
    $Label3 = GUICtrlCreateLabel("Bestzeit: XXX Sekunden", 17, 65, 145, 17)
    $Label4 = GUICtrlCreateLabel("Datum: XX.XX.XXXX", 167, 65, 177, 17)
    $Label5 = GUICtrlCreateLabel("Gespiele Spiele: XX", 17, 85, 328, 17)
    $Label6 = GUICtrlCreateLabel("Gewonnene Spiele: XX", 17, 102, 143, 17)
    $Label7 = GUICtrlCreateLabel("Prozentsatz: XX%", 165, 101, 183, 17)
    $Button1 = GUICtrlCreateButton("Neues Spiel", 239, 135, 126, 25, 0)
    $Exit = GUICtrlCreateButton("Beenden", 33, 135, 126, 25, 0)

    Switch $iOption
    Case 0
    WinSetTitle("24ü242üpl","","Spiel verloren!")
    GUICtrlSetData($FinishGUI,"Spiel verloren!")
    GUICtrlSetData($Label1,"Leider verloren. Spielen Sie noch einmal.")
    GUICtrlSetData($Label2,"Zeit: "&$Time&" Sekunden")
    Switch $Schwierigkeitsgrad
    Case 1
    If $1_Time_Anfaenger = "" Then
    GUICtrlSetData($Label3,"Bestzeit: ")
    Else
    GUICtrlSetData($Label3,"Bestzeit: "&$1_Time_Anfaenger&" Sekunden")
    EndIf
    GUICtrlSetData($Label4,"Datum: "&$1_Date_Anfaenger)
    GUICtrlSetData($Label5,"Gespiele Spiele: "&$Win_Anfaenger+$Lose_Anfaenger)
    GUICtrlSetData($Label6,"Gewonnene Spiele: "&$Win_Anfaenger)
    $Gewinn = $Win_Anfaenger/($Win_Anfaenger + $Lose_Anfaenger)
    If $Win_Anfaenger + $Lose_Anfaenger = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label7,"Prozentsatz: "&$Gewinn & "%")
    Case 2
    If $1_Time_Fortgeschritten = "" Then
    GUICtrlSetData($Label3,"Bestzeit: ")
    Else
    GUICtrlSetData($Label3,"Bestzeit: "&$1_Time_Fortgeschritten&" Sekunden")
    EndIf
    GUICtrlSetData($Label4,"Datum: "&$1_Date_Fortgeschritten)
    GUICtrlSetData($Label5,"Gespiele Spiele: "&$Win_Fortgeschritten+$Lose_Fortgeschritten)
    GUICtrlSetData($Label6,"Gewonnene Spiele: "&$Win_Fortgeschritten)
    $Gewinn = $Win_Fortgeschritten/($Win_Fortgeschritten + $Lose_Fortgeschritten)
    If $Win_Fortgeschritten + $Lose_Fortgeschritten = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label7,"Prozentsatz: "&$Gewinn & "%")
    Case 3
    If $1_Time_Profi = "" Then
    GUICtrlSetData($Label3,"Bestzeit: ")
    Else
    GUICtrlSetData($Label3,"Bestzeit: "&$1_Time_Profi&" Sekunden")
    EndIf
    GUICtrlSetData($Label4,"Datum: "&$1_Date_Profi)
    GUICtrlSetData($Label5,"Gespiele Spiele: "&$Win_Profi+$Lose_Profi)
    GUICtrlSetData($Label6,"Gewonnene Spiele: "&$Win_Profi)
    $Gewinn = $Win_Profi/($Win_Profi + $Lose_Profi)
    If $Win_Profi + $Lose_Profi = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label7,"Prozentsatz: "&$Gewinn & "%")
    EndSwitch


    Case 1
    WinSetTitle("24ü242üpl","","Spiel gewonnen!")
    GUICtrlSetPos($Label1,75,15,300,17)
    GUICtrlSetData($Label1,"Sie haben Gewonnen. Spielen Sie noch einmal.")
    GUICtrlSetData($Label2,"Zeit: "&$Time&" Sekunden")
    Switch $Schwierigkeitsgrad
    Case 1
    If $1_Time_Anfaenger = "" Then
    GUICtrlSetData($Label3,"Bestzeit: ")
    Else
    GUICtrlSetData($Label3,"Bestzeit: "&$1_Time_Anfaenger&" Sekunden")
    EndIf
    GUICtrlSetData($Label4,"Datum: "&$1_Date_Anfaenger)
    GUICtrlSetData($Label5,"Gespiele Spiele: "&$Win_Anfaenger+$Lose_Anfaenger)
    GUICtrlSetData($Label6,"Gewonnene Spiele: "&$Win_Anfaenger)
    $Gewinn = $Win_Anfaenger/($Win_Anfaenger + $Lose_Anfaenger)
    If $Win_Anfaenger + $Lose_Anfaenger = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label7,"Prozentsatz: "&$Gewinn & "%")
    Case 2
    If $1_Time_Fortgeschritten = "" Then
    GUICtrlSetData($Label3,"Bestzeit: ")
    Else
    GUICtrlSetData($Label3,"Bestzeit: "&$1_Time_Fortgeschritten&" Sekunden")
    EndIf
    GUICtrlSetData($Label4,"Datum: "&$1_Date_Fortgeschritten)
    GUICtrlSetData($Label5,"Gespiele Spiele: "&$Win_Fortgeschritten+$Lose_Fortgeschritten)
    GUICtrlSetData($Label6,"Gewonnene Spiele: "&$Win_Fortgeschritten)
    $Gewinn = $Win_Fortgeschritten/($Win_Fortgeschritten + $Lose_Fortgeschritten)
    If $Win_Fortgeschritten + $Lose_Fortgeschritten = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label7,"Prozentsatz: "&$Gewinn & "%")
    Case 3
    If $1_Time_Profi = "" Then
    GUICtrlSetData($Label3,"Bestzeit: ")
    Else
    GUICtrlSetData($Label3,"Bestzeit: "&$1_Time_Profi&" Sekunden")
    EndIf
    GUICtrlSetData($Label4,"Datum: "&$1_Date_Profi)
    GUICtrlSetData($Label5,"Gespiele Spiele: "&$Win_Profi+$Lose_Profi)
    GUICtrlSetData($Label6,"Gewonnene Spiele: "&$Win_Profi)
    $Gewinn = $Win_Profi/($Win_Profi + $Lose_Profi)
    If $Win_Profi + $Lose_Profi = 0 Then $Gewinn = 0
    $Gewinn = $Gewinn * 100
    $Gewinn = Round ($Gewinn,1)
    GUICtrlSetData($Label7,"Prozentsatz: "&$Gewinn & "%")
    EndSwitch
    EndSwitch

    GUISetState()

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3, $Exit
    Exit
    Case $Button1
    GUIDelete($FinishGUI)
    _NewGame()
    $nMsg = ""
    Return
    EndSwitch
    WEnd
    EndFunc

    Func _Speichern()
    Local $SpeichernEula
    If $SbBis <> 1 Then
    $SpeichernEula = MsgBox(3,"Speichern","Wollen Sie ihr angefangenes Spiel speichern?")
    EndIf
    If $SpeichernEula = 6 or $SbBis = 1 Then ;JA
    IniDelete(@ScriptDir & "\MineSweeper.cfg","Savegame")
    _FileWriteToLine(@ScriptDir & "\MineSweeper.cfg",1,"[Savegame]")

    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Time",GUICtrlRead($Time))
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Level",$Schwierigkeitsgrad)
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","X",$Field_X)
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Y",$Field_Y)
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Minen",GUICtrlRead($Mines))
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Bomben",$Bomben)
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Save","1")

    ;Array's Speichern
    For $y = 1 To UBound($ButtonArray,1)-1
    For $x = 1 To UBound ($ButtonArray,2)-1
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Button_" & $y & "_" & $x,$ButtonArray[$y][$x])
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Spiel_" & $y & "_" & $x,$SpielArray[$y][$x])
    IniWrite(@ScriptDir & "\MineSweeper.cfg","Savegame","Flaggen_" & $y & "_" & $x,$FlaggenArray[$y][$x])
    Next
    Next
    Return 1
    Elseif $SpeichernEula = 2 Or $SpeichernEula = 3 Then ;Abbrechen
    Return 2
    ElseIf $SpeichernEula = 7 Then ;Nein
    Return 3
    EndIf
    EndFunc
    #EndRegion Funktionen

    Ich freue mich über Kritik, Anregungen und natürlich auch über lob ;)

    Spielanleitung: hier

    Download: Bilder,Script, Exe, Config-Datei angehängt autoit.de/wcf/attachment/7783/

    LG Jakolo

  • Sieht super aus.
    Nur irgendwie kriege ich das net zuende. Hatte alle Minen gefunden und trotzdem nicht gewonnen ;(
    Oder kapier ich das jetzt falsch. Hatte alle nämlich markiert.

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • Ja ich habs bisher nur so gemacht das wenn man alle Felder aufgedeckt hat das Spiel zu ende ist.

  • wow respekt.
    funktionieren tuts schonmal gut ;)
    und minesweeper mochte ich schon immer

    wieviel vom dem script ist denn per copy&paste immer wieder eingefügt?^^
    reines tippen würd ja bestimmt bisschen dauern :D

  • Schnitzel
    Naja nen bischen copy&paste ist schon dabei aber groß teils ist es schon getippt...

    Bakku
    Geht's jetzt? Wenn nicht, dann beschreib mal das Problem genauer. ist noch ein Button zu sehen oder ist nur ein leeres Feld da?
    LG Jakolo