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
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