Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VU, 3 ECTS, 2015 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. Etwa in der Mitte befindet sich genau ein Ausgang, an dem ein für Mäuse attraktiver und von Weitem riechbarer Futterköder liegt. An den Seiten oder Ecken befinden sich mehrere 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 die Richtung zu, aus der sie den Geruch des Futterköders wahrnehmen. Wenn ihnen eine Mauer im Weg steht, laufen sie in jener Richtung an der Mauer entlang, die eher in Richtung des wahrgenommenen Geruchs liegt. 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 in Richtung des Geruchs des Futterköders zu laufen. 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 das Ziel zustreben. 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 Wind in eine der vier Himmelsrichtungen erzeugen, der die Richtung beeinflusst, aus der der Geruch des Futterköders wahrgenommen wird. Südwind verschiebt die wahrgenommene Richtung nach Norden, Nordwind nach Süden, Westwind nach Osten und Ostwind nach Westen. Jede(r) Spieler(in) kümmert sich um eine z.B. farblich gekennzeichnete Maus und versucht, diese durch Erzeugen von Wind möglichst rasch zum Ausgang zu führen. Gleichzeitig kann man dadurch andere Mäuse 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 Erzeugen des Winds und weitere Details des Spielablaufs. Achten Sie darauf, dass das Spiel spannend wird. Vielleicht wäre es sinnvoll, den Wind nur langsam zu- und abnehmen zu lassen und die Windstärke davon abhängig zu machen, wie viele Spieler gerade Wind zu erzeugen versuchen. Eventuell kann der erzeugte Wind durch zufälligen natürlichen Wind überlagert werden. Der Fantasie sind hier keine Grenzen gesetzt. Damit das Spiel interssanter wird, sollte es zumindest mehrere Levels mit unterschiedlich gestalteten Spielfeldern geben.

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
            PK
            GPK
            PP
            FOOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
            Prog.spr.
         LVAs 2014 W
         LVAs 2014 S
         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: 2015-03-13 (Puntigam)