Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VU, 3 ECTS, 2014 S

1. Übungsaufgabe

Entwickeln Sie in einer objektorientierten Programmiersprache Ihrer Wahl (aber in keiner auf die Spieleprogrammierung spezialisierten Sprache) ein Mäuserennspiel entsprechend folgender Beschreibung.

Auf dem Spielfeld befindet sich ein labyrinthartiges Geflecht an Mauern und Gängen, wobei die Gänge durch zahlreiche Türen (die jeweils geöffnet oder geschlossen sein können) miteinander verbunden sind. An einer Seite oder Ecke befindet sich genau ein Ausgang, an dem ein für Mäuse attraktiver und von Weitem riechbarer Futterköder liegt. An der gegenüberliegenden Seite oder Ecke befinden sich mehrere (mehr oder weniger weit voneinander entfernte) Eingänge. Die am Mäuserennen teilnehmenden hungrigen Mäuse betreten das Spielfeld gleichzeitig durch zufällig gewählte Eingänge und streben rasch und kerzengerade auf den Ausgang zu. Wenn ihnen eine Mauer im Weg steht, laufen sie in jener Richtung an der Mauer entlang, die sie (in Luftlinie) näher an den Ausgang bringt. Natürlich können Mäuse auch durch geöffnete Türen laufen, aber nicht durch geschlossene. Wenn Mäuse in eine Sackgasse geraten, laufen sie ein kurzes Stück in eine zufällig gewählte andere, nicht durch eine Mauer blockierte Richtung. Danach beginnen sie aber wieder damit, in möglichst direkter Linie auf den Ausgang zuzulaufen. Es ist leicht möglich, dass eine Maus dabei immer wieder in derselben Sackgasse landet. Innerhalb des zufälligen Suchbereichs jeder möglichen Sackgasse sollte sich daher eine Tür befinden, die im geöffneten Zustand aus der Sackgasse herausführt. Wenn sich zwei Mäuse begegnen, beschnuppern sie sich zunächst, das heißt, sie legen eine Pause ein. Danach trennen sie sich und laufen ein Stück in zufällig gewählte unterschiedliche Richtungen, bevor sie wieder auf den Ausgang zulaufen. Gewinnerin ist jene Maus, die als erste den Ausgang erreicht.

Der Lauf der Mäuse wird ausschließlich durch den Computer automatisch gesteuert. Spieler(innen) können das Wettrennen dadurch beeinflussen, dass sie während des Rennens gezielt Türen öffnen und schließen. Jede(r) Spieler(in) kümmert sich um eine z.B. farblich gekennzeichnete Maus und versucht, diese durch Öffnen der richtigen Türen möglichst rasch zum Ausgang zu führen. Gleichzeitig kann man andere Mäuse durch Schließen von Türen behindern.

Jede(r) Spieler(in) befindet sich auf dem eigenen Computer und ist mit den Computern der anderen Spieler(innen) über ein Netzwerk verbunden. Die Kommunikation zwischen den Computern soll so effizient ablaufen, dass zumindest alle Gruppenmitglieder gleichzeitig spielen können, ohne nennenswerte Verzögerungen zu bemerken.

Suchen Sie selbst nach geeigneten Steuerungsmöglichkeiten für das Öffnen und Schließen von Türen und weitere Details des Spielablaufs. Beispielsweise kann man eine Tür durch einen Cursor anwählen oder durch das Eintippen einer Nummer. Achten Sie auch darauf, dass das Spiel spannend wird. Vielleicht wäre es sinnvoll, Türen verzögert reagieren zu lassen, Mindestintervalle zwischen Öffnungs- und Schließvorgängen einzuführen, die Anzahl der Schließvorgänge pro Spieler(in) zu begrenzen, Türen automatisch zu schließen wenn zu viele offen sind, etc. Damit das Spiel interssanter wird, sollte es zumindest mehrere Levels (z.B. mit unterschiedlich gestalteten Spielfeldern) geben. Details der Lösung dieser Aufgabe sind frei wählbar. Wer möchte, kann den Algorithmus zur Suche nach einem Ausgang gerne auch komplexer gestalten.

Complang
Puntigam
   Kontakt
   Research
   Lehre
      OOP
      Typsysteme
      EP2
      FOOP
      Prog.spr.
      frühere Lehre
         LVAs 2017 W
         LVAs 2017 S
         LVAs 2016 W
         LVAs 2016 S
         LVAs 2015 W
         LVAs 2015 S
         LVAs 2014 W
         LVAs 2014 S
            FOOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
            Prog.spr.
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
         LVAs 2009 W
         LVAs 2009 S
         LVAs 2008 W
         LVAs 2008 S
         LVAs 2007 W
         LVAs 2007 S
         LVAs 2006 W
         LVAs 2006 S
         LVAs 2005 W
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
nächste Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2014-03-13 (Puntigam)