Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

09.12.2012, 15:39

"Jetzt würde mich interessieren, wenn ihr beispielsweise Spiele schreibt, wie speichert ihr eure Daten?"

Ich hab mir ein Format überlegt und dann alles selbst programmiert, natürlich völlig überflüssigerweise (...). Für meine Zwecke reicht das. Ich lese die Datei in einen String und daraus extrahiere ich Schlüssel und Werte in STL-Kontainer.

12

09.12.2012, 16:36


Bin ich dann in der Datei so dachte ich an eine Art Verzeichnis, welches mir im Fall des Wortes "brechen" sagt, so die Worte mit "br" beginnend anfangen, in XML etwa so:

<index line="123">b</index>
<index line="456">c</index>
...

Ich springe dann in die entsprechende Zeile und setzte dort meine Suche fort. Damit die Daten nicht unnötig groß werden und es nur um die Erweiterbarkeit und nicht um die optimale Lesbarkeit geht, dachte ich könnte man oberes auch so gestalten:

<i l="123>b</i>
...

Hm, nein, so funktioniert XML aber eigentlich nicht. Zunächst einmal würdest du natürlich eine fertige XML-Bibliothek benutzen, etwa rapdi-XML. Da hast du dann auch gar nicht die Möglichkeit in eine Zeile zu springen und das ist gut so. Das schöne an XML ist doch, dass sich die Tags selber beschreiben. In einem Binärformat würde man bei einer Liste mit 5 Elementen damit anfangen, die Gesamtzahl der Elemente in die Datei zu schreiben, gefolgt von den 5 Elementen. Bei XML legt man einfach 5 Tags an und der Parser macht beim Laden den Rest. Sobald du damit anfängst in einen extra Tag zu schreiben "Jetzt kommen 5 Tags der Sorte X" oder "Wörter die mit br Anfangen, fangen 100 Zeilen tiefer an" verlierst du die Möglichkeit, XML Dateien einfach so zu verändern, also z.b. Tags einzufügen oder zu löschen, ohne dass die Datei dadurch kaputt geht. Deine Dateien sind dann überhaupt nicht mehr robust und du verlierst viele Vorteile von XML.
Lieber dumm fragen, als dumm bleiben!

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

13

09.12.2012, 19:57

Zum binären Suchbaum findest du bei Google mehr als genug Informationen;) Ist eigentlich ganz einfach. Musst nur mal suchen. Eine Map kannst du hier aber wie schon erwähnt auch gut benutzen. Dein Problem mit den Daten ist eigentlich nicht vorhanden. Im Prinzip hast du das Wort an sich, dessen Übersetzung und möglicherweise Zusatzinformationen. Bei den Zusatzinformationen ist ja eigentlich egal, was diese beinhalten. Sie sind einfach da. Also hast du pro Dateneintrag 3 Informationen.
Du könntest jetzt pro Zeile einen Datensatz speichern und diese Drei Daten aufeinanderfolgen lassen. Möglicherweise getrennt durch ein bestimmtes Zeichen um sie hinterher wieder auseinander zu nehmen.
Wie man seine Daten speichert hängt ja normal ein wenig von der Anforderung ab. Möchtest du einen gesamten Spielzustand speichern, oder vielleicht nur Daten eines Charakters. Möglicherweise möchtest du aber auch ein Level speichern. Da muss man jedes mal gucken was man genau möchte. Das kommt aber alles mit der Zeit. Versuch dir darüber einfach weniger Gedanken zu machen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige