Wie speichert man Variablen?

03/15/2016 04:44 sk1ll3r25#1
Hey,
ich möchte ein kleines Spiel programmieren, wirklich nichts besonderes und habe das Problem das ich nicht weiß wie ich Variablen auch nach dem schließen des Programms speichern kann. Also so, dass ich wenn ich das Programm das nächste mal starte ich da bin wo ich war als ich es beendet habe.
Beispielsweise wenn ich eine Integer "Geld" habe, diese sich im Laufe des spielens verändert, wie kann ich das dann Speichern und beim nächsten Programmstart dort fortsetzen, ich möchte da garkeine hochkomplizierten Sachen anwenden und denke mal jeder der das liest denkt sich gerade was fürn Idiot, aber ich komme da echt nicht weiter.
schonmal danke im vorraus
mfg
03/15/2016 07:23 IceTrailer#2
Quote:
Originally Posted by sk1ll3r25 View Post
Hey,

ich möchte ein kleines Spiel programmieren, wirklich nichts besonderes und habe das Problem das ich nicht weiß wie ich Variablen auch nach dem schließen des Programms speichern kann. Also so, dass ich wenn ich das Programm das nächste mal starte ich da bin wo ich war als ich es beendet habe.

Beispielsweise wenn ich eine Integer "Geld" habe, diese sich im Laufe des spielens verändert, wie kann ich das dann Speichern und beim nächsten Programmstart dort fortsetzen, ich möchte da garkeine hochkomplizierten Sachen anwenden und denke mal jeder der das liest denkt sich gerade was fürn Idiot, aber ich komme da echt nicht weiter.

schonmal danke im vorraus

mfg

Schreib das doch einfach in eine eigene Datei. Entweder erstmal sowas wie ne Ini-Datei oder erfinde (noch besser) dein eigenes Dateiformat.
03/15/2016 10:02 alpines#3
Je nachdem welche Sprache du verwendest gibt es unterschiedliche Bibliotheken, einerseits kannst du ein eigenes Format nehmen wo du alles untereinander setzt oder du könntest beispielsweise Inis nehmen wie IceTrailer vor mir es schon vorgeschlagen hatte.

Solltest du planen das Spiel nur mit einer .exe laufen zu lassen solltest du dir überlegen ob du nicht deinen Speicherstand hinter der .exe abzuspeichern also praktisch in der Datei nur nach dem ganzen Code - so hast du alles sauber in einer Datei.
03/15/2016 12:20 Shawak#4
[Only registered and activated users can see links. Click Here To Register...]

Serialisierung ist auch recht einfach
03/15/2016 12:30 Dr.Toni#5
In VB.net hab ich damals My.Settings benutzt. Nicht so schön, aber es hat funktioniert. :p
03/15/2016 14:25 IceTrailer#6
Also das alles in einer Datei ist keineswegs ästhetisch und nicht zu empfehlen. Ressourcen und Settings sollten immer in separaten Dateien gespeichert werden. Übrigens würde ich Json nicht unbedingt empfehlen - ist für Anfänger schwieriger als INI und ist langsamer beim Auslesen und Schreiben.
03/15/2016 14:31 Shawak#7
Der Geschwindigkeitsunterschied ist bei diesem Szenario zu vernachlässigen, außerdem ist es viel einfacher. Vor allem dann, wenn man mehrere Variablen/Objekte speichern möchte.
03/16/2016 07:06 IceTrailer#8
Quote:
Originally Posted by Shawak View Post
Der Geschwindigkeitsunterschied ist bei diesem Szenario zu vernachlässigen, außerdem ist es viel einfacher. Vor allem dann, wenn man mehrere Variablen/Objekte speichern möchte.

Als Anfänger war ich damals froh, wenn irgendwas überhaupt irgendwie gespeichert werden konnte. Aber fürs Verständnis sind einfache INI-Dateien besser als JSON.
03/16/2016 07:38 MrDami123#9
Der Wikipedia Artikel zu INI-Dateien enthält 10x das Wort Windows.
Wenn nicht morgen was besseres kommt als JSON, nimm JSON.
03/16/2016 08:07 Kentika#10
[Only registered and activated users can see links. Click Here To Register...]
03/16/2016 09:34 Devsome#11
Quote:
Originally Posted by IceTrailer View Post
Als Anfänger war ich damals froh, wenn irgendwas überhaupt irgendwie gespeichert werden konnte. Aber fürs Verständnis sind einfache INI-Dateien besser als JSON.
Mag sein das INI-Dateien für den Anfang besser sind, aber auf Dauer fährt man mit JSON schon besser. Ist einfach universeller einsetzbar

Quote:
Originally Posted by MrDami123 View Post
Der Wikipedia Artikel zu INI-Dateien enthält 10x das Wort Windows.
Wenn nicht morgen was besseres kommt als JSON, nimm JSON.
Jap, nimm JSON :3
03/16/2016 11:09 sk1ll3r25#12
Ok erstmal ein großes danke an alle die geholfen haben. Ich schreibe den Code in C# mit visual studio, hab ich vergessen zu sagen :s Habe mir die Sachen mal angesehen und fand .ini leichter und werde das wohl verwenden. Wie IceTrailer gesagt hat, als Anfänger bin auch ich Froh das es überhaupt iwie gespeichert wird. Also nochmal danke dafür.
03/16/2016 14:49 Doktor.#13
In C# kannste ganz einfach mit JSON eine ganze Klasse serialisieren und dann in eine Datei abspeichern.
Hab zwar in C# noch nichts mit ini-files gemacht, aber muss sagen das JSON extremst praktisch ist, besonders wenn man mit C# programmiert.

Das Problem liegt wohl darin, dass Anfänger sich nicht die Mühe machen wollen etwas richtig zu verstehen und dann zu Sachen greifen, welche es schon 1000x im Internet zum C&P gibt. --> INI

Also ich empfehle dir ebenfalls JSON
03/16/2016 16:08 Shadow992#14
Quote:
Originally Posted by Doktor. View Post
In C# kannste ganz einfach mit JSON eine ganze Klasse serialisieren und dann in eine Datei abspeichern.
Hab zwar in C# noch nichts mit ini-files gemacht, aber muss sagen das JSON extremst praktisch ist, besonders wenn man mit C# programmiert.

Das Problem liegt wohl darin, dass Anfänger sich nicht die Mühe machen wollen etwas richtig zu verstehen und dann zu Sachen greifen, welche es schon 1000x im Internet zum C&P gibt. --> INI

Also ich empfehle dir ebenfalls JSON
Wieso hat noch niemand den XML-Serializer angesprochen?
Der entstehende XML-Code ist sehr einfach zu lesen (ungefähr Niveau von INI-Files) und es gibt mehr als genug C&P-Code und auch viele bereits vorhandene Funktionen.

Die Änderung zum Serialisieren sind minimal und relativ intuitiv.

Daher empfehle ich dir ganz klar:
Schau dir den XMLSerializer an: [Only registered and activated users can see links. Click Here To Register...]
03/16/2016 22:09 damona#15
Wenn du nicht möchtest das es jeder x beliebige Spieler manipulieren kann wie z.b. Speicherstände kannst du auch mit binären Dateien arbeiten.
In C# ist es übrigends toll damit zu arbeiten wegen dem BinaryReader/Writer.

Wenn es nur um Einstellungen geht wie die Fenster Größe oder FullScreen Modus etc. wie bereits gesagt XML/JSON oder auch INI.


Ich persönlich arbeite gerne mit Binären oder JSON Dateien.