Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VL 2.0, 2010 S

3. Übungsaufgabe

Lernen Sie Smalltalk und entwickeln Sie ein Programm in Smalltalk (siehe unten). Ziel der Aufgabe ist das Sammeln von Erfahrungen zu Umfangreiche Informationen zur Programmiersprache Smalltalk (Tutorials, Bücher, Beispiele, etc.) finden Sie unter dem Cetus-Link zu Smalltalk. Es gibt mehrere frei verfügbare Smalltalk-Systeme. Prinzipiell sind alle davon zur Lösung der Aufgabe geeignet. Empfohlen wird das Smalltalk-System Squeak, das noch aktiv entwickelt wird und sich gut zum Programmieren bzw. Generieren von Spielen ohne besondere Vorkenntnisse eignet.

Squeak:

Squeak ist eine open source Implementierung von Smalltalk-80, die auf vielen Plattformen verfügbar ist. Details der Installation hängen von der Plattform ab. Beachten Sie, dass Sie neben dem eigentlichen Interpreter noch einige Dateien brauchen, in denen der aktuelle Systemzustand enthalten ist. Wenn Sie in Smalltalk programmieren, verändern Sie diese Dateien. In der Regel verwenden Sie keine eigenen Dateien mit Programmcode. Wenn Sie mehrere Versionen haben wollen, brauchen Sie auch mehrere solche Dateien. Am wichtigsten ist die Datei squeak.image, die das gesamte System in einem ausführbaren Zwischencode enthält. Die Datei squeak.changes enhält alle Änderungen des Smalltalk-Codes und SqueakV39.sources (eventuell mit einer anderen einkodierten Versionsnummer) den Source-Code des Grundsystems. Wenn Sie squeak nicht in dem Verzeichnis aufrufen, in dem diese Dateien zu finden sind, müssen Sie die Dateien beim Aufruf explizit angeben.

Squeak unterstützt zwei grundsätzlich verschiedene Subsysteme zur Programmierung grafischer Oberflächen: das klassische MVC (Model-View-Controller, wie in Smalltalk-80) und das neuere Morphic. Sie können eines der beiden Subsysteme wählen. Vermeiden Sie nach Möglichkeit die gemischte Verwendung bei der es zu unerwarteten Wechselwirkungen kommen kann.

Aufgabe:

Schreiben Sie das Schlangen-Spiel aus der 1. Aufgabe in einer Smalltalk-Umgebung neu, wobei das ganze Spiel aber nur auf einem Rechner in einem Fenster laufen muss. Es ist also nicht nötig, dass Spieler sich remote mit einem Spiel verbinden können. Um trotzdem mehreren Spielern das gleichzeitige Spielen zu ermöglichen, sollen über dieselbe Tastatur (aber über unterschiedliche Tasten) mehrere Schlangen gleichzeitig steuerbar sein.

In Smalltalk schreibt man (anders als in eher statischen Sprachen) in der Regel nicht einfach ein Programm für einen bestimmten Zweck, sondern man adaptiert und erweitert die vorhandene Umgebung. Ein Ziel der Aufgabe ist es, diesen Programmierstil kennenzulernen. Vor allem zur Programmierung der grafischen Oberfläche empfiehlt es sich, ein anderes Programm als Vorlage zu verwenden und dieses abzuändern. Dabei werden Sie lernen, sich im Smalltalksystem zurechtzufinden. Eine Schwierigkeit (vor allem in der GUI Programmierung) besteht darin, dass das API (Application Programming Interface) keine gute statische Dokumentation hat. Smalltalk-Programmierer lernen eher durch das Lesen und die Verwendung bestehenden Smalltalk-Codes als aus der Dokumentation. Aus diesem Grund sind Kommentare besonders wichtig, und jede Klasse und Methode, die Sie selber schreiben, soll durch Kommentare klar spezifiziert sein.

Für Squeak gibt es unter anderem die Zusatzpakete Etoys und Scratch, die die Erstellung mancher einfacher Spiele stark vereinfachen. Zur erfolgreichen Lösung der Aufgabe ist es notwendig, dass Sie im eigentlichen Smalltalk-System Code schreiben bzw. adaptieren, also nicht einfach nur solche Zusatzpakete verwenden, um sich ein Spiel generieren zu lassen. Vermutlich werden Sie mit diesen Paketen ohnehin nicht die für das Schlangenspiel nötige Effizienz erreichen können.

Die einfache Änderbarkeit des Systems kann sich negativ auswirken. Insbesondere wird es dadurch schwieriger, Programme von einem System auf ein anderes zu übertragen. Zur Verringerung dieses Problems wurden Versionsverwaltunssysteme wie z.B. Monticello eingeführt. Verwenden Sie ein solches System, um das von Ihnen entwickelte Spiel portabel zu machen.

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
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
            Prog.spr.
            FOOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
         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:
vorige Aufgabe
Links:
Smalltalk (Cetus)
Squeak
Monticello
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2010-04-21 (Puntigam)