Zahlenratespiel Rangliste integrieren

  • ein wunderschönen guten abend aus dem sonnigen flensburg (naja fast immer sonnig ;) ) !

    ich habe hier ein ratespiel gescriptet. sinn ist es, eine zahl zwischen z.b. 1 und 10 in möglichst wenigen versuchen zu erraten.
    ist mein erstes spiel. bin noch nciht ganz soo erfahren ;)

    nun zu meinem problem:

    [autoit]

    #include <file.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $Titelname = "Finde die Zahl"
    Global $FindeZahl = "Finde die Zahl zwischen: "

    [/autoit][autoit][/autoit][autoit]

    If Not FileExists ("\Rangliste.ini")Then
    _FileCreate ("\Rangliste.ini")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $Wunschzahl = Inputbox ( $Titelname , "Wie groß soll die Differenz sein, zwischen den Zahlen die du Raten möchtest:")
    Msgbox (0, $Titelname, $FindeZahl & $Wunschzahl )

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $ZahlX = Random (1, $Wunschzahl , 1)

    [/autoit][autoit][/autoit][autoit]

    $Versuche = 1
    Do
    $Zahluser = InputBox ($Titelname , "Gebe hier deine Zahl ein, von der du denkst, dass sie richtig ist." )

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    If $ZahlX < $Zahluser Then
    MsgBox (0, $Titelname, "Die Zahl ist niedriger!")
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    If $ZahlX > $Zahluser Then
    Msgbox (0, $Titelname, "Die Zahl ist höher!")
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    If $ZahlX = $Zahluser Then
    Msgbox (0, $Titelname, "Hurra! Du hast die Zahl erraten!")
    EndIf

    $Versuche = $Versuche + 1
    Until $ZahlX = $Zahluser
    MsgBox (0, $Titelname, "Sie haben " & $Versuche & " Versuche gebraucht")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Platz1 = InputBox ("PLatz 1", "Platz 1:")
    IniWrite(@ScriptDir & "\Rangliste.ini", "Plätze", "Platz1", $Platz1 )

    [/autoit][autoit][/autoit][autoit]

    $Platz2 = InputBox ("PLatz 2", "Platz 2:")
    IniWrite(@ScriptDir & "\Rangliste.ini", "Plätze", "Platz2", $Platz2 )

    [/autoit][autoit][/autoit][autoit]

    $Platz3 = InputBox ("PLatz 3", "Platz 3:")
    IniWrite(@ScriptDir & "\Rangliste.ini", "Plätze", "Platz3", $Platz3 )

    [/autoit][autoit][/autoit][autoit]

    $Platz_a1 = IniRead("Rangliste.ini", "Plätze", "Platz 1","")
    $Platz_a2 = IniRead("Rangliste.ini", "Plätze", "Platz 2","")
    $Platz_a3 = IniRead("Rangliste.ini", "Plätze", "Platz 3","")

    [/autoit][autoit][/autoit][autoit]

    MsgBox (0, "Rangliste", "Platz 1 = " & $Platz_a1 & "Platz 2 = " & $Platz_a2 & "Platz 3 = " & $Platz_a3 )

    [/autoit][autoit][/autoit][autoit]

    Exit

    [/autoit]

    Ich möchte die Rangliste so einbauen, dass der das automatisch da einbaut. d.h. man muss nicht immer platz 1, 2 und 3 angeben. sondern der soll sich von selber aktualisieren.
    kann mir da vielleicht itte eine/r helfen?
    wäre euch sehr dankbar!

    lg. Henk´s

    Einmal editiert, zuletzt von Henk´s (28. Juni 2009 um 17:51)

  • Hallo
    zum Start des Programms liest Du die Ini mit inireadsection in ein 2 dimensionales Array ein. Danach kannst du das Spiel laufen lassen. Wenn die Punktezahl feststeht liest du mittels For Schleife die Punkte aus und vergleichst die Größe. Ist sie Größer mußt Du den Alten Wert in einer Zwischenvariabel mit Schlüßel zwischenspeichern und den neuen Schlüßel mit Wert eintragen. Danach das gleiche mit dem nächsten Schlüßel und Wert. Alternativ das Array mit REDIM vergrößern und anschließend mit _Arraysort neu sortieren und die IndexPosition nach dem sortieren ist dann der Rang.
    Gruß Ralf