PD Dr. Ulrich Schöpp Stephan Barth Ludwig-Maximilians-Universität München Institut für Informatik WS 2015/16 Softwareentwicklungspraktikum Nebenfach Erweiterungen der Planstadt Das Projekt Planstadt kann auf vielfältige Weise erweitert werden. Dieses Blatt stellt Erweiterungsvorschläge vor, die optional implementiert werden können. Der zu erwartende Aufwand wird durch eine Anzahl an ? angegeben, wobei mehr ? für mehr Aufwand stehen. Erweiterungen werden bei der Bewertung des Projekts berücksichtigt. Achten Sie aber darauf, dass zunächst die Grundfunktionalität aus der Projektbeschreibung vollständig implementiert ist. Bewertungskriterien sind unter anderem die Korrektheit der Implementierung der Aufgabenstellung, die Umsetzung von Inhalten des Plenums (z.B. die Aufteilung des Programms nach dem Model-View-Controller-Muster), die Dokumentation und Lesbarkeit des Programms, usw. Erweiterung 1 (Katastrophen – ?) Im Laufe des Spiels können Katastrophen auftreten. Dies können die folgenden sein, aber auch andere Katastrophen sind durchaus möglich. • Monster: Tritt nur auf, wenn es Felder mit sehr hoher Verschmutzung gibt. Ein Monster zieht durch die Stadt und zerstört Bauwerke, über die es läuft. Es wird dabei durchgehend von Verschmutzung angezogen. • Feuer: Ein Feuer breitet sich langsam in der Stadt aus. • Flut: Ein Gewässer tritt über das Ufer und hat das Potential alles zu zerstören, was im Weg ist. • Kernschmelze: Ein Kernkraftwerk fliegt in die Luft und verstrahlt die Landschaft. • Erdbeben: Infolge eines Erdebens brechen an mehreren Stellen der Stadt Feuer aus. Ebenfalls können vereinzelte Gebäude direkt zerstört werden. • Smog: Für eine Weile steigen die Verschmutzungswerte nur an und können nicht sinken. Dies kann ferner den Level von Bauwerken senken, die dadurch von sehr starker Verschmutzung betroffen sind. Einige Details zu einigen der Katastrophen • Monster: Es zieht zufällig von Feld zu Nachbarfeld. Dabei bevorzugt es aber Felder mit höherer Verschmutzung. Hat eine gewisse Lebensdauer, die bei der Erzeugung festgelegt wird. Ist die Lebensdauer überschritten, so verschwindet das Monster. • Flut: Ein Gebiet wird von Wasser überflutet. Das ist sowohl anzuzeigen, wie auch einige Bauwerke auf dem Weg sind zu zerstören. • Kernschmelze: Tritt nur auf, wenn es Kernkraftwerke gibt. Das Kraftwerk explodiert und in einem gewissen Umkreis werden Verstahlungen auf der Karte gesetzt. Bauwerke, die von Verstrahlung betroffen sind, werden zerstört. So lange auf diesen Feldern noch Verstrahlung zu finden ist (>0,5), kann auf diesen Feldern auch nichts mehr gebaut werden. Erweiterung 2 (Laden & Speichern – ?) Für eine Speicherfunktion können Sie den kompletten Datenstand des Modells in ein JSON-Objekt übertragen und dieses dann als Datei speichern. Zum Laden muss diese Datei entsprechend wieder ausgelesen werden. Zusätzlich bietet es sich an es zu ermöglichen einen Dateinamen zum Laden und Speichern angeben zu können, so dass man verschiedene Spiele gleichzeitig gespeichert haben kann. Erweiterung 3 (Netzwerk – ???) Implementieren Sie einen Mehrspielermodus über Netzwerk. Mehrere Spieler sollen dazu kooperativ zusammen eine Stadt lenken. Dazu soll die Simulation des Spiels nur auf dem Server stattfinden. Der Server soll allen Clients den Datenstand schicken. Alle Aktionen der Spieler sollen von den Clients an den Server geschickt werden. Diese setzt die Auswirkungen der Aktionen um. Falls Sie auch Laden & Speichern“ implementieren, bietet es sich an die gleichen Methoden ” zum Umwandeln des Spielstands in das JSON-Format zu verwenden. Erweiterung 4 (Eigene Bauwerke – ??) Entwickeln Sie eigene Bauwerke für das Spiel. Um Bauwerke zu entwickeln, die sich gut in das Spiel einfügen, ist es vermutlich notwendig zumindestens einige Regeln im gegebenen JSON-Regel-Format zu schreiben. Damit die Bauwerke eine interessante Ergänzung sind, sollten Sie sich überlegen, was diese Bauwerke den existierenden Bauwerken gegenüber besonders macht. Erweiterung 5 (Genauere Finanzen – ?) Verbessern Sie das Finanzsystem: Ermöglichen Sie es die Finanzierungsraten für Infrastruktur, Feuerwehr und Polizei zu ändern. Die Finanzierungsraten sind durch die Werte INFRARATIO, FIRERATIO und POLICERATIO festgelegt. Diese Werte stellen eine Prozentzahl dar, wie weit der entsprechende Bereich (Infrastruktur, Feuerwehr und Polizei) finanziert wird. Zusätzlich muss die JSON-Datei planstadt.json angepasst werden, da in ihr automatisch diese Werte vor der Verwendung auf 100 gesetzt werden, damit die Regeln auch sinnvoll funktionieren, wenn dieser Aspekt nicht umgesetzt ist. Dazu müssen alle Regeln der Form { "type":"globals", "set":[0,0,...], "op":"max", "args":[100], "cond":"true" }, entfernt werden, an der Stelle ... steht entsprechend INFRARATIO, FIRERATIO, oder POLICERATIO.
© Copyright 2024 ExpyDoc