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