Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VL 2.0, 2008 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 jedoch das Smalltalk-System Squeak, das von vielen Leuten unterstützt 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 die aktuellen Programme und Daten enthalten sind. Wenn Sie in Smalltalk programmieren, verändern Sie diese Dateien. In der Regel verwenden Sie keine eigenen Dateien mit Programmcode. Wenn Sie mehrere Versionen Ihrer Programme 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 (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.

Aufgabe:

Entwickeln Sie in einer Smalltalk-Umgebung ein kleines Spiel mit einer grafischen Benutzeroberfläche. Beispiele für geeignete Spiele sind Tic-Tac-Toe, Tetris, Snake, etc. Die Steuerung kann mit der Maus oder über Tastatur erfolgen. Es stehen gerade für Squeak sehr viele kleine Spiele im Web zum Download bereit. Das Herunterladen ist zur Lösung der Aufgabe zu wenig; Sie müssen schon selbst Code schreiben bzw. adaptieren. Ein fertiges Spiel könnte als Vorlage zur Entwicklung eigenen Codes dienen. Vielleicht ist es sogar möglich, ein fertiges Spiel in ein ganz anderes eigenes Spiel umzuprogrammieren.

Für Squeak gibt es unter anderem die Zusatzpakete Etoys und Scratch, die die Erstellung mancher einfacher Spiele stark vereinfachen. Falls Sie solche Pakete verwenden, generieren Sie Spiele bitte nicht nur durch diese Werkzeuge. Zur erfolgreichen Lösung der Aufgabe ist es notwendig, dass Sie im eigentlichen Smalltalk-System Code schreiben bzw. adaptieren. Aber es ist natürlich zusässig, dass Sie Zusatzpakete als Hilfsmittel verwenden.

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. 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.

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
         LVAs 2009 W
         LVAs 2009 S
         LVAs 2008 W
         LVAs 2008 S
            Prog.spr.
            FOOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
         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
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2008-04-25 (Puntigam)