Einzelnen Beitrag anzeigen

Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#7

Re: Wie macht man am besten Highscore-Einträge?

  Alt 27. Feb 2005, 15:29
Ich weiß nicht ob das nicht übertrieben wäre, aber du könntest THighscores auch zur Klasse machen
Delphi-Quellcode:
type
  THighscores = class(TObject)
  public
    Items: array [1..10] of THighscorePlatz
    procedure LoadFromFile(FileName: string);
    procedure SaveToFile(FileName: string);
    function HighscorePlatzErreicht(Name: string; Punkte: Integer): Integer;
  end;
Save und Load musst du dann beim Starten des Programms bzw. beim Beenden ausführen.
In der Funktion HighscorePlatzErreicht könntest du prüfen ob und an welchen Platz ein neuer Spielstand in die Highscore gehört. Wenn er reinkommt verschiebst du die Einträge im Array um einen Platz nach hinten und schreibst den übergebenen Record an die entsprechende Stelle.

Delphi-Quellcode:
function THighscores.HighscorePlatzErreicht(Name: string; Punkte: Integer): Integer;
var
  i, j: Integer;
  fertig: Boolean;
begin
  fertig := false;
  i := High(Items);
  while i >= Low(Items) and not fertig do
  begin
    if Items[i].Punkte > Punkte then
    begin
      for j := i+1 to Low(Items) -1 do
        Items[j+1] := Items[j];
      Items[i+1].Punkte := Punkte;
      Items[i+1].Name := Name;
      fertig := true;
    end;
    Dec(i);
  end;
end;
So oder so ähnlich.
Mein Vater hat grad den Fernseher angemacht und ich kann nicht dafür garantieren dass sich nicht doch noch ein Logikfehler eingeschlichen hat...
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat