Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp13/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp13/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp13/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2013 - MMOG - Game Settings

Malte Gegner

GameSettings

Um die Regeln und Konstanten festzuhalten, haben wir die Klasse GameSettings erfunden. Sie besitzt zwei Methoden: get(key) und set(key,value).

Diese Klasse wird dazu genutzt, allgemeine Regeln des Spiels in den Starteinstellungen festzuhalten. Man kann Integer, Strings oder Boolsche Werte hinter Schlüsseln hinterlegen. Diese werden in die Datenbank geschrieben, um sie zu späteren Zeiten wieder abgreifen zu können.

Intern werden Integer und Boolsche Werte zu Strings mit Schlüsselworten konvertiert, damit sie wie Strings in die Datenbank gelegt werden können. Beim Herauslesen stellen die GameSettings fest, um was es sich gehandelt hatte. Außerdem werden alle eingetragenen und ausgelesenen Werte in einer Klassenvariablen gecached, damit bei mehreren Anfragen desselben Schlüssels nicht immer die Datenbank ausgelesen werden muss, auch wenn diese die Antwort immer zuverlässig in 10 ms bereitstellen konnte und kann. Dies ist ohne Probleme möglich, da nur Konstanten in die GameSettings nach Konvention einzutragen sind.

Beispiel:

gs = GameSettings.new
GameSettings.set "caching?", true
GameSettings.set "WORLD_LENGTH", 12
gs.set "ERR_STD_MSG", "Du darfst diese Aktion nicht ausführen!"
x = GameSettings.get("WORLD_LENGTH") * 2 + 1

Jede Gruppe hat die Möglichkeit, die GameSettings zu nutzen. Darauf wird in den folgenden Absätzen nicht mehr explizit hingewiesen.


Page last modified on August 22, 2013, at 11:15 PM