Ich erstelle ein kleines Text-Rollenspiel, um Python zu üben, und habe eine Frage zum Laden von Daten. Das Spiel ist ein Wild-West-Spiel, obwohl das nicht allzu relevant ist, und ich muss Listen mit Waffen und ihren Eigenschaften sowie Listen mit Charakteren, Szenarien usw. speichern. Ich habe eine gute Vorstellung davon, wie man sie darstellt Diese Daten als Klassen, aber ich bin nicht so klar, wie die Daten gespeichert und geladen werden sollen.
Meine Hauptfrage dreht sich um die Beziehung zwischen Daten und Klassen. Ich habe einige Beiträge hier auf SE gelesen und viele beziehen sich auf die Speicherung, daher habe ich dort einige gute Informationen.
Wann sollte ich diese Daten laden? Zum Beispiel wählt der Spieler zu Beginn des Spiels aus mehreren Waffen. Sollte ich an diesem Punkt alle Waffen laden und alle Waffenobjekte instanziieren? Sollte die Waffenklasse die Möglichkeit haben, Waffen aus der Datenbank anzuzeigen, ohne sie zu instanziieren?
Vielen Dank für jede Hilfe.
quelle
obj->setWeaponType(WEAPON_TYPE_SHOTGUN)
oder was auch immer, und die Waffe konfiguriert sich entsprechend. Waffenleistungsmetriken verwenden möglicherweise die Werte des Typs als Basislinie, ermöglichen jedoch, dass das Endergebnis von der Instanz geändert wird. Diese Art von Ding.Laden Sie alles am Anfang. Komplizieren Sie Ihr Programm nicht, indem Sie Daten zwischen Speicher und Festplatte aufteilen, es sei denn, Sie müssen (z. B. wenn zu viel Speicher gleichzeitig vorhanden ist).
Wichtig ist, die Unterscheidung zwischen Daten, die Instanzen eines Elements darstellen, und Daten, die den Typ eines Elements darstellen, zu verstehen. Im Allgemeinen teilen mehrere Instanzen des ersteren eine gemeinsame Instanz des letzteren.
quelle
Ich bin mit Python nicht so vertraut. Der allgemeine Rat, den ich geben würde, ist, es einfach zu halten. Sie sagten, Sie hätten bereits eine Vorstellung davon, wie die Daten dargestellt werden sollen. Wenn Sie einige Klassen für die Daten haben, die Sie speichern möchten, können Sie diese in einer Liste speichern. Diese Liste kann dann auf Festplatte onSave serialisiert und onLoad deserialisiert werden. Für eine erste Implementierung und wenn die Daten nicht so groß sind, würde ich alles zu Beginn des Spiels laden und es zu bestimmten Zeitpunkten speichern.
quelle
Sie könnten SQLite verwenden . Mit SQLite können Sie Datenbanken im Speicher und auf der Festplatte erstellen, und Sie müssen kein riesiges DBMS wie MySQL installieren.
quelle