#Include "BI\sGui.bi"
#Include "bi\INI.bi"
#Include "file.bi"

#Define MB_V 4096
Randomize

Dim as EventHandle ptr event
Dim Shared As Integer maxint = 200,max1,level=1,punkte=12,Taste=0,zuge = 0,zugeinsgesamt = 0,Hintergrund1=100,Hintergrund2=200,Hintergrund3=25
Dim Shared As Integer zugeposx= 30,zugeposy = 225,zugeinsposx = 30,zugeinsposy = 240,iresult,punkteadd = 8
Dim Shared As String eingabe , Version
Dim Shared As Gadget ptr ok,Stringgadget,nextlevel,beenden,nochmal,speichern,Neu,Laden
Version = "2.4.5.164"


screen 16,32,&H04
CustomColors=1


BackGroundColor = RGB(Hintergrund1,Hintergrund2,Hintergrund3) 'Hintergrundfarbe
TextColor = RGB(0,0,0) 'Textfarbe
GadgetColor =RGB(255,75,75) 'Grundfarbe der Gadgets
GadgetTextColor =RGB(0,0,0) 'Farbe des Textes innerhalb der Gadgets (außer StringGadgets)
CursorColor =RGB(0,64,128) 'Farbe des Cursors innerhalb eines StringGadgets
MenuColor =RGB(175,198,231)'Grundfärbung des Menüs
MenuTextColor =RGB(0,0,0) 'Farbe des Menütextes
MenuHiliteColor =RGB(121,151,223) 'Farbe des HighlightBalkens
MenuGhostedColor =RGB(	205,201,201) 'Farbe des Menütextes bei Inaktivität
InitGFX

event=CreateEventHandle
stringgadget = addStringGadget (event ,30,85, 55 ,40 ,,,,1)
ok= addsimplegadget(event,30,130,447,40,"OK")
nextlevel = addsimplegadget(event,30,280,447,40,"N"+Chr(132)+"chstes Level -->")
beenden = addsimplegadget(event,30,330,447,40,"Beenden")
nochmal = addsimplegadget(event,30,200,447,40,"Nochmal!")
speichern= addsimplegadget(event,30,5,100,30,"Speichern!")
neu= addsimplegadget(event,30,100,447,40,"Neues Spiel!")
Laden= addsimplegadget(event,30,150,447,40,"Letzes Spiel Fortsetzen!")


Sub Zugeadd()
	zuge = zuge + 1
	zugeinsgesamt = zugeinsgesamt + 1
End Sub

Sub DrawStrings()
	Draw String(zugeposx,zugeposy), String(41 + zuge,Chr(219)), RGB(hintergrund1,hintergrund2,Hintergrund3)
	Draw String(zugeinsposx,zugeinsposy), String(41 + zugeinsgesamt,Chr(219)), RGB(hintergrund1,hintergrund2,Hintergrund3)
	Draw String(320,10), String(6 + level,Chr(219)), RGB(hintergrund1,hintergrund2,Hintergrund3)
	Draw String(400,10), String(7 + punkte,Chr(219)), RGB(hintergrund1,hintergrund2,Hintergrund3)
	Draw String(30,60),String(32 + maxint,Chr(219)), RGB(hintergrund1,hintergrund2,Hintergrund3)
	Draw String(30,180), String(14 + maxint,Chr(219)), RGB(hintergrund1,hintergrund2,Hintergrund3)
	
	Draw String(zugeposx,zugeposy), "In diesem Level haben sie " & zuge & " Z"+Chr(129)+"ge gebraucht!"
	Draw String(zugeinsposx,zugeinsposy), "Insgesamt haben sie " & zugeinsgesamt & " Z"+Chr(129) + "ge gebraucht!"
	Draw String(320,10), "Level:" & str(level)
	Draw String(400,10), "Punkte:" & Str(punkte)
	Draw String(30,60),"Errate eine zahl zwischen 1 und " & Maxint
	If Not eingabe = "" Then
		If Val(eingabe) < Max1 Then
			Draw String(30,180), Eingabe & " ist zu klein!"
		ElseIf Val(eingabe) > Max1 Then
			Draw String(30,180), Eingabe & " ist zu hoch!"
		ElseIf val(eingabe) = Max1 Then
			Draw String(30,180), Eingabe & " ist richtig!"
		EndIf
	End If
End Sub



Sub Gadgetons()
	Gadgeton(ok)
	gadgeton(stringgadget)
	gadgeton(speichern)
End Sub

Sub suboeffnensub()
	zugeinsgesamt = Val(GetValue("Zügeinsgesamt",,"Save",EXEPATH & "\Rate Spiel.sav"))
	zuge = Val(GetValue("Züge",,"Save",EXEPATH & "\Rate Spiel.sav"))
	Punkte = Val(GetValue("Punkte",,"Save",EXEPATH & "\Rate Spiel.sav"))
	Level = Val(GetValue("Level",,"Save",EXEPATH & "\Rate Spiel.sav"))
	max1 = Val(GetValue("Zahl",,"Save",EXEPATH & "\Rate Spiel.sav"))
	maxint = Val(GetValue("Zahlrandomize",,"Save",EXEPATH & "\Rate Spiel.sav"))
	max1 = Rnd * Maxint
End Sub

Sub subspeichernsub()
	SetValue("Zügeinsgesamt",Str(zugeinsgesamt),"Save",EXEPATH & "\Rate Spiel.sav")
	SetValue("Züge",Str(zuge),"Save",EXEPATH & "\Rate Spiel.sav")
	SetValue("Punkte",Str(punkte),"Save",EXEPATH & "\Rate Spiel.sav")
	SetValue("Level",Str(level),"Save",EXEPATH & "\Rate Spiel.sav")
	SetValue("Zahl",Str(max1),"Save",EXEPATH & "\Rate Spiel.sav")
	SetValue("Zahlrandomize",Str(maxint),"Save",EXEPATH & "\Rate Spiel.sav")
End Sub

Sub enter()
	eingabe = getstring(stringgadget)
	If Not eingabe = "" Then
		Zugeadd()
		Cls
	ElseIf eingabe = "" Then
		Cls
		Draw String(30,180),"Keine Eingabe!"
	End If
	Gadgetons()
	DrawStrings()
	If Not eingabe = "" Then
		punkte = punkte - 1
		Setstring (stringgadget,"")
		If Val(eingabe) > Max1 Then
			Cls
			Gadgetons()
			DrawStrings()
		ElseIf Val(eingabe) < Max1 Then
			Cls
			Gadgetons()
			DrawStrings()
		ElseIf Val(eingabe) = Max1 Then
			punkte = punkte + punkteadd
			Cls
			gadgeton(nextlevel)
			gadgeton(beenden)
			gadgetsleep(ok)
			gadgetsleep(stringgadget)
			gadgeton(speichern)
			DrawStrings()
		End If
	End If
End Sub



If FileExists ("Rate Spiel.sav") Then
	gadgetoff(nextlevel)
	gadgetoff(beenden)
	gadgetoff(nochmal)
	gadgetoff(speichern)
	Gadgetoff(ok)
	gadgetoff(stringgadget)
	gadgeton(neu)
	gadgeton(laden)
	Draw String (30,20), "Es wurde ein Gespeichertes Spiel gefunden!"
	Draw String (30,50),"Wollen sie das Letze Spiel fortsetzen?"
Else
	max1 = Rnd * Maxint
	gadgetoff(neu)
	gadgetoff(laden)
	gadgetoff(nextlevel)
	gadgetoff(beenden)
	gadgetoff(nochmal)
	gadgeton(speichern)
	Gadgeton(ok)
	gadgeton(stringgadget)

	DrawStrings()

End If





'####################################################################################################################################
'####################################################################################################################################
'####################################################################################################################################




Do

	event->xSleep(0)

	If Punkte < 1 Then

		ScreenLock
		gadgetoff(speichern)
		gadgetoff(ok)
		gadgetoff(nextlevel)
		gadgetoff(stringgadget)
		Cls
		gadgeton(beenden)
		gadgeton(nochmal)

		Draw String(175,150), "Du hast Verloren!!"
		ScreenUnLock

	EndIf


	If event->KEY<>"" then
		Select case event->KEY

			Case Chr(13)

				enter()
		end Select

	end If

	if event->GADGETMESSAGE then
		select case event->GADGETMESSAGE

			Case laden
				CLS
            suboeffnensub()
				gadgetoff(neu)
				gadgetoff(laden)
				gadgetoff(nextlevel)
				gadgetoff(beenden)
				gadgetoff(nochmal)
				gadgeton(speichern)
				Gadgeton(ok)
				gadgeton(stringgadget)
				DrawStrings()

			Case neu
				Kill "Rate Spiel.sav"
				Cls
				max1 = Rnd * Maxint
				gadgetoff(neu)
				gadgetoff(laden)
				gadgetoff(nextlevel)
				gadgetoff(beenden)
				gadgetoff(nochmal)
				gadgeton(speichern)
				Gadgeton(ok)
				gadgeton(stringgadget)
				DrawStrings()

			Case beenden
				DestroyEventHandle (event)
				End

			Case speichern
				subspeichernsub()
				iresult = Messagebox(0,"Das Spiel wurde erfolgreich gespeichert!","MSS RateSpiel " & Version,MB_ICONINFORMATION Or MB_V Or MB_OK)

			Case nochmal
				zuge = 0
				zugeinsgesamt = 0
				level = 1
				punkte = punkteadd
				maxint = 200
				max1 = Rnd * Maxint
				Eingabe = ""
				setString(Stringgadget,"")
				Cls
				gadgeton(speichern)
				gadgeton(stringgadget)
				gadgeton(ok)
				gadgetoff(nochmal)
				gadgetoff(nextlevel)
				gadgetoff(beenden)
				DrawStrings()

			case ok

				enter()

			Case nextlevel
				maxint = maxint + 200
				max1 = Rnd * Maxint
				level = level + 1
				eingabe = ""
				zuge = 0
				Cls
				gadgetoff(nextlevel)
				gadgetoff(beenden)
				GadgetOn(ok)
				gadgeton(stringgadget)
				gadgeton(speichern)
				DrawStrings()
		end select

	End If
	Sleep 10,1
Loop until event->EXITEVENT



DestroyEventHandle (event)
End


