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/dbp09/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/dbp09/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp09/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2009 - Gruppe 1 - Backend-spielwelt

Spielwelt

Galaxie

Die Spielwelt bestehend aus Sonnensystemen und Planeten muss vor Beginn einer Spielpartie initialisiert werden. Um diesen Vorgang zu automatisieren wurde der BackendGalaxyController geschrieben. Diese Klasse stellt unter anderem die Methode play_god zu Verfügung, welche die Spielwelt bestehend aus 5000 Sonnensystemen generiert und in der Datenbank ablegt. Dabei bekommt jedes Sonnensystem einen eindeutig bestimmten Namen und eine eindeutige Raumkoordinate aus einem Würfel mit Kantenlänge 100, welche dem Sonnensystem zufällig zugewiesen wird. Des Weiteren wird jedem Sonnensystem eine Collection von 5-15 Planeten mit zufällig bestimmtem Bonus auf eine der 3 Rohstoffarten und zufällig bestimmter Größe (Anzahl an Baufeldern) zugewiesen. Alle weiteren Attribute erhalten zusätzlich valide Einträge. Beispielsweise erhält das Planeten-Attribute homeplanet den Wert FALSE. Zur Unterscheidung der Planeten innerhalb eines Systems werden diese noch folgendermaßen durchindiziert:

Planet n := Galaxyname n | mit n aus [1,Anzahl Planeten]

Der Einfachheit halber wird jedem Planeten auch direkt eine Collection aller verfügbaren Gebäude auf Stufe 0 zugeordnet, sodass sich der Bau eines Gebäudes durch eine simple Inkrementation des Gebäude-Attributs level realisieren lässt.

Bsp. Sonnensystem Arcturus Minor in PhpMyAdmin:

Zugeordnete Planeten:

Zugeordnete Gebäude zu Arcturus Minor 1:

Neben der Methode play_god gibt es noch die Methoden homeplanet und reset_planets:
Die Methode homeplanet bestimmt zufällig einen unbewohnten Planeten, setzt dessen Attribute auf Standardwerte, die aus der RulesAndRegulations Datei entnommen werden, und übergibt diesen Planeten als Rückgabewert. Registriert sich ein neuer Spieler so wird diese Methode aufgerufen um ihm einen Heimatplaneten zu suchen, sodass jeder Spieler dieselben Ausgangsbedingungen hat.

Die Methode reset_planets erhält eine Collection von Planeten, welche zurückgesetzt werden sollen. Ein Aufruf erfolg, sobald sich ein Benutzer dazu entscheidet sich permanent abzumelden und sorgt dafür, dass das Universum nach dem Löschen des Benutzers nicht in einen inkonsistenten Zustand hinterlassen wird. Die Arbeitsweise ist die Folgende:

Der BackendGalaxyController bietet somit alle nötigen Funktionalität um die Galaxy für Benutzer zugänglich zu machen und bei Benutzerregestrierung und -abmeldung auch entsprechend anzupassen.


Page last modified on August 23, 2009, at 05:01 PM