Christoph Ott Institut für Angewandte Informationsverarbeitung 3. September 2008
Projekt
WiMa-Praktikum/ Programmier-Praktikum (SS 2008)
Projekt-Aufgabe
Projekt-Vorstellung: 03. September 2008
Eure Aufgabe ist es bis zum 03. September 11:00 Uhr ein C++-Programm zu schreiben,
das es dem Anwender erlaubt eines von mehreren Spielen auszuwählen und dieses zu
spielen. Das Ergebnis soll in einem Highscore gespeichert werden, der ebenfalls vom
Anwender eingesehen werden kann.
Damit das Projekt als erfolgreich absolviert bewertet werden kann müssen folgende
Anforderungen erfüllt sein:
- Ihr müsst eine Projekt-Gruppe von vier Personen bilden.
- Jede dieser Personen muss fest definierte Aufgaben übernehmen, die sie
abschließend auch vorstellen kann.
- Eure Plattform sollte verschiedene Spiele unterstützen. Von folgenden Spiele-Typen
sollte jeweils ein Vertreter implementiert werden:
- Ein-/Ausgabe-basiertes Spiel. Hierzu zählt zum Beispiel das bereits in
den Präsenzübungen implementierte Spiel ,,Zahlenraten``.
- Datei-basiertes Spiel. Hierzu zählen Spiele die aus Deteien lesen und in Dateien
schreiben. Ein Beispiel hierfür kann eine Implementierung von ,,Wer wird Millionär``
sein, bei der Fragen und Antworten in einer Datei abgelegt sind.
- Spiele mit grafischer Ausgabe. Diese kann auch beliebig primitiv sein.
Beispielsweise können bei einem Spiel wie z.B. ,,Tic Tac Toe`` die Spielsteine des
einen Spielers durch ,,x``, die des anderen durch ,,o`` markiert werden. Ebenso köennen
waagerechte und senkrechte Striche auf der Tastatur eingegeben werden.
- Nach Start des Programms sollte es für jeden Spieler stets mindestens die
folgenden drei Möglichkeiten geben:
- play: Spiel eines vom Anwender zu wählenden Spiels.
- highscore: Betrachten des Highscores für ein vom Anwender zu
wählendes Spiel.
- exit: Verlassen der Spiele-Plattform.
- Versucht darüber hinaus das Design Eures Programms so objekt-orientiert wie
irgend möglich zu gestalten.
Der Zeitrahmen des Projekts ist der Zeitraum vom 29.8 bis zum 03.09. In dieser Zeit
stehen Euch auch Eure Tutoren in den Präsenzübungen persönlich und ansonsten
zumindest via E-Mail zur Verfügung. Am 03.09. benennen die Tutoren ihre jeweiligen
Favoriten-Gruppen, die dann zwischen 11 und 12 Uhr Ihr Projekt im H15 vor allen
Praktikumsteilnehmern vorstellen dürfen. Damit endet dann auch das Projekt und
somit auch der 1.Teil des Praktikums.
Erfolgreiche Projektarbeit ist durch das Einhalten fest definierter Meilensteine
(d.h. bestimmte Anforderungen die zu einem bestimmten Zeitpunkt erfüllte sein
müssen) gekennzeichnet. Unsere Meilensteine sehen folgendermaßen aus:
- Montag 01.09. 11-13 Uhr: Diskutiert mit Eurem Tutor Euer
Programm-Design. Dazu gehören folgende Fragen:
- Welche Klassen (d.h. insbesondere welche abstrakte Klassen,
welche sonstigen Oberklassen und welche Unterklassen) benötigt Ihr?
- Wie sollen diese Klassen zusammenspielen?
braucht Ihr dafür?
- Welche Spiele wollt Iht implementieren?
- Wie realisiert Ihr diese und den jeweils zugehörigen Highscore?
- Wie seiht Eure Gruppenaufteilung aus (d.h. insbesondere wer macht
was und bis wann?).
- Dienstag 02.09. 11-13 Uhr: Stellt Eurem Tutor eine erste
prototypische Implementierung (d.h. es muss noch nicht alle
Klassenfunktionalität geschrieben sein, der Ablauf des main-Programms und die
Header-Files sollten aber größtenteils stehen) Eures Programms vor und diskutiert
diese mit ihm.
- Mittwoch 03.09. 09-11 Uhr:
Stellt Eurem Tutor Euer fertiges Programm vor.
- Mittwoch 03.09. 11-12 Uhr:
Wenn Ihr Glück habt, dürft Ihr Euer Programm im H4/5 vorstellen, ansonsten hört
einfach zu, was die anderen Gruppen so gemacht haben.
All jene, die Ihr Projekt optisch etwas schöner gestalten möchten, können sicher
gerne mal an Qt probieren (auch wenn auf unseren Rechnern noch eine ältere
Qt-Version installiert ist). Allerdings hab weder ich noch der Großteil der
Tutoren besonders viel Erfahrung mit Qt. Eine kleine
Einführung, die im Rahmen der Vorlesung ''Objektorientierte
Softwareentwicklung mit C++'' im WS 2002/2003 entwickelt wurde, möchte ich Euch
trotzdem als Grundlage weiterer Experimente bereit stellen.
Viel Erfolg!
Christoph Ott
2008-09-03