Wie speichere ich den Zustand eines Kartenspiels im lokalen Speicher?
- Einführung in den lokalen Speicher
- Wie wird der Zustand eines Kartenspiels definiert?
- Speichern des Zustands
- Beispielhaftes Speichern in JavaScript
- Wiederherstellen des Zustands
- Zusätzliche Hinweise
- Fazit
Einführung in den lokalen Speicher
Der lokale Speicher (Local Storage) ist eine Web-API, die es ermöglicht, Daten im Browser des Benutzers dauerhaft zu speichern.
Anders als Session Storage bleibt der lokale Speicher auch nach dem Schließen und Öffnen des Browsers erhalten.
Dies ist sehr nützlich, um den Zustand von Anwendungen wie einem Kartenspiel zu behalten, sodass der Benutzer beim nächsten Besuch an derselben Stelle weiterspielen kann.
Wie wird der Zustand eines Kartenspiels definiert?
Um den Zustand eines Kartenspiels zu speichern, muss zunächst festgelegt werden, welche Informationen relevant sind.
Dies kann z.B. beinhalten, welche Karten sich im Deck befinden, welche Karten auf der Hand des Spielers sind, welche Karten auf dem Tisch liegen und eventuell weitere spielbezogene Zustände wie Punktzahlen, aktuelle Spieler, etc.
Üblicherweise werden diese Informationen in einer JavaScript-Objektstruktur zusammengefasst.
Speichern des Zustands
Da der lokale Speicher nur Strings speichern kann, musst du dein Zustandsobjekt in einen String umwandeln. Dies geschieht häufig mithilfe von JSON.stringify(), das ein JavaScript-Objekt in eine JSON-String-Repräsentation konvertiert.
Im Anschluss kannst du diesen String unter einem Schlüssel in localStorage ablegen.
Beispielhaftes Speichern in JavaScript
const spielZustand = { deck: , handSpieler: , kartenAufTisch: , aktuellerSpieler: Spieler 1, punkte: { Spieler 1: 5, Spieler 2: 3 }};// Zustand als JSON-String speichernlocalStorage.setItem(kartenspielZustand, JSON.stringify(spielZustand));
In diesem Beispiel wird ein Objekt mit typischen Kartenspiel-Daten in einen JSON-String umgewandelt und unter dem Schlüssel kartenspielZustand im lokalen Speicher abgelegt.
Wiederherstellen des Zustands
Um den gespeicherten Zustand bei einem späteren Laden der Seite wiederherzustellen, brauchst du den gespeicherten Wert aus dem lokalen Speicher auszulesen und zurück in ein JavaScript-Objekt umzuwandeln.
const gespeicherterZustand = localStorage.getItem(kartenspielZustand);if (gespeicherterZustand) { const spielZustand = JSON.parse(gespeicherterZustand); // Hier kannst du das Kartenspiel mit dem gelesenen Zustand initialisieren console.log(spielZustand);} else { // Kein gespeicherter Zustand vorhanden, neues Spiel starten}Zusätzliche Hinweise
Es ist wichtig, regelmäßig den Zustand zu speichern, z.B. nach jedem Spielzug oder nach wichtigen Änderungen, damit bei einem unerwarteten Verlassen der Seite keine Daten verloren gehen.
Da der lokale Speicher eine Größenbeschränkung (meist ca. 5MB) hat, sollte man den Zustand möglichst kompakt halten. Außerdem funktioniert der lokale Speicher nur im Browser und ist nicht zwischen unterschiedlichen Geräten synchronisiert.
Fazit
Das Speichern des Zustands eines Kartenspiels im lokalen Speicher ist durch die Umwandlung des Spielzustands in einen JSON-String und dessen Speicherung über localStorage.setItem einfach umzusetzen.
Beim Laden des Spiels kann der Zustand wieder mit localStorage.getItem und JSON.parse zurückgewonnen und zur Initialisierung verwendet werden.
So lässt sich gewährleisten, dass Spieler ihren Fortschritt erhalten, auch wenn sie die Seite neu laden oder den Browser schließen.
