Entwickler-Ecke

Multimedia / Grafik - Highscore... Wie am besten?


bigknaller - Mo 27.01.03 18:11
Titel: Highscore... Wie am besten?
Also ich will eine Art Highscore machen. Es ist ein simples Zahlen-Raten-Spiel, also nix mit Direct X. Wie realisiere ich das am besten? Mit einer Datenbank, Textdateien???


mimi - Mo 27.01.03 18:39

ich habe mal bei meinem Snake 1 eine eingebaut.
Wenn du willst kann ich mal schauen ob ich die stelle im qullcode noch finden;)
ich habe es einfach mit TStringList gemacht,
heute würde ich dafür ein record nehmen, von 1-10 z.B.
so werden dann die 10 besten abgspeichert und der rest nicht mehr....
records hätte den vorteil das die datei nicht leseber ist mit dem Notepad;)

MFG
Michael Springwald


bigknaller - Mo 27.01.03 18:47

Stringliste ist net so gut, dann lieber records.
Hab ich aber noch nie gehört. Gibt es da irgendeine Adresse?


mimi - Mo 27.01.03 19:03

Ne das Speichern und laden ist aber einfach.
das problem ist halt nur das meine punkte liste auf TSTringList aufbaut, das heißt du musst deine eigenes system aufbauen;)
such mal einfahc hier im forum nach record oder so.

MFG
Michael Springwald


kampfkoloss23 - Mo 27.01.03 19:26

ich hab meine higscore mit inifiles angelegt,
(da diese aber zu leicht lesbar und veränderbar sind, empfiehlt
eine kleine Verschlüsselung)


bigknaller - Mo 27.01.03 20:00

Werds wohl doch mit einer Stringliste machen. Ist sowieso nur ein Schulprojekt.
Trotzdem danke an alle.


Aya - Di 28.01.03 03:07

Hi,

also... um es wirklich ziemlich sicher zu machen, macht es einfach so:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
THighscore = Record
  Punkte: Integer;
  Name: ShortString;
end;

var
  Highscore: Array[1..10] of THighscore;

procedure WriteHighscore;
var
  F: TFileStream;
  i: Integer;
begin
  F:=TFileStream.Create('C:\Highscore.hs',fmCreate);
  for i:=1 to 10 do
    F.Write(Highscore[i],SizeOf(Highscore[i]));
  F.Free;
end;

procedure ReadHighscore;
var
  F: TFileStream;
  i: Integer;
begin
  F:=TFileStream.Create('C:\Highscore.hs',fmOpenRead);
  for i:=1 to 10 do
    F.Read(Highscore[i],SizeOf(Highscore[i]));
  F.Free;
end;


Ich kann nich garantieren das es geht, denn ich hab's grad ungetestet aus'm Kopf einfach mal aufgeschrieben :)

Au'revoir,
Aya~


bigknaller - Di 28.01.03 09:27

Okay, merci beaucoup.
Werd ich gleich mal probieren.