AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie macht man am besten Highscore-Einträge?

Wie macht man am besten Highscore-Einträge?

Ein Thema von malo · begonnen am 27. Feb 2005 · letzter Beitrag vom 27. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

Wie macht man am besten Highscore-Einträge?

  Alt 27. Feb 2005, 15:09
Hi!

Und zwar möchte ich für ein Programm eine Highscoreliste einbauen. Nur jetzt die Frage: Wie setz ich das am besten um?

Wie man einzelne Einträge macht, weiß ich schon (inis). Allerdings sollen folgende Kriterien erfüllt werden können:
  • Es dürfen maximal 10 Einträge gemacht werden
  • Die Highscores sollten nach Punkten geordnet sein (der erste ganz oben, der schlechteste ganz unten)
  • Es müssen von jedem Benutzer Name, Punktzahl und Rang jederzeit aufrufbar sein

Kann mir da vielleicht jemand ein paar Denkanstöße geben? Weil ich grad nicht wirklich weiß, wie ich das im Einzelnen umsetzen soll...
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

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

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

  Alt 27. Feb 2005, 15:57
Ich würde dir empfehlen die Ini mit den Scores so anzulegen
Code:
[Platz1]
Name=Hanspeter
Punkte=10000000
[Platz2]
Name=DerEwigZweite
Punkte=100000
[...]
und komplett ins Programm einzulesen. Im Programm könntest du dir zB ein Array aus Records anlegen und darin die Daten speichern

Delphi-Quellcode:
type
  THighscorePlatz = record
    Name: string;
    Punkte: Integer;
  end;

  THighscore = array[1..10] of THighscorePlatz
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
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

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

  Alt 27. Feb 2005, 16:03
Danke schonmal

Nur wie kann ich die Plätze auch "tauschen" lassen. Also wenn jemand jetzt auf den zweiten Platz kommt, muss der zweite und alles, was drunter ist, einen Platz aufrücken. Muss ich dann die neue Punktzahl mit allen anderen einzeln Vergleichen und alles neu rausschreiben?
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#4

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

  Alt 27. Feb 2005, 16:16
Hallo,

schau mal hier

1. Eintrag...
Catbytes
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#5

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

  Alt 27. Feb 2005, 16:19
Du prüfst nach jedem Spiel ob die erzielte Punktzahl größer ist als das letzte Element in der Highscore. Ist dies der Fall übershcreibst du das Element mit dem neuen Wert. Dann kannst du das Array über ein Sortierverfahren neu sortieren lassen und wieder ausgeben oder in eine INI Datei speichern.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#6

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

  Alt 27. Feb 2005, 16:19
Zitat von Catbytes:
Hallo,

schau mal hier

1. Eintrag...
Manchmal übersieht man echt die einfachsten Dinge

Trotzdem danke, ich schaus mir mal an
  Mit Zitat antworten Zitat
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, 16: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
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#8

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

  Alt 27. Feb 2005, 21:03
Zitat von Flogo:
Ich würde dir empfehlen die Ini mit den Scores so anzulegen
Code:
[Platz1]
Name=Hanspeter
Punkte=10000000
[Platz2]
Name=DerEwigZweite
Punkte=100000
[...]
Das wäre so zwar prinzipiell möglich, aber Ini-Dateien haben den Nachteil, dass sie relativ leicht durch den Benutzer manipuliert werden können, wenn diese in einem einfachen Texteditor geladen werden. Deshalb würde ich hier eher typisierte Dateien bevorzugen.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#9

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

  Alt 27. Feb 2005, 21:32
Jupp würde dir auch Typisierte Dateien empfehlen.
Du kannst natürlich auch versuchen die Ini's zu verschlüsseln.

Hier ein Tut zu Typ. Dateien:
http://www.dsdt.info/tutorials/typdateien/
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#10

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

  Alt 27. Feb 2005, 21:34
So habe ich das gemacht :

http://www.delphipraxis.net/internal...=327477#327477
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz