Home > Informatik > Stufe EF > Abenteuerspiel

Ein kleines Abenteuerspiel

Einleitung - Gegenstand

Vorüberlegungen

Nun, da wir mit dem EF-Kurs Informatik fertig sind, wollen wir unsere erworbenen Kenntnisse mal anwenden, um ein winziges Spiel zu programmieren. Seit vielen Jahren schon lasse ich meine Schüler und auch meine Schülerinnen ein kleines Abenteuer-Spiel erstellen. Dieses Konzept hat übrigens auch schon Eingang in viele Informatik-Schulbücher gefunden, weil man mit Hilfe eines solchen Spiels viele grundlegende Konzepte der objektorientierten Programmierung verdeutlichen kann.

Konkretisierung

Wie soll das Spiel ablaufen?

Ein Held bewegt sich durch einen Dungeon. Dabei muss er sich von einem Startpunkt zu einem Zielpunkt bewegen. Unterwegs trifft er auf Monster, die er bekämpfen muss. Er kann aber auch Gegenstände finden und an sich nehmen, beispielsweise eine bessere Waffe, einen Schild oder einen Heiltrank.

Überlegungen zu den Java-Klassen

Für den Helden brauchen wir eine Klasse Held, in der wir alle Eigenschaften und Verhaltensweisen des Helden festlegen. Eng verwandt damit ist eine Klasse Monster, in der die Eigenschaften/Verhaltensweisen der Monster festgelegt werden. Hier könnte man schon mal eine einfache Vererbungsbeziehung festlegen: Held und Monster sind Tochterklassen einer Klasse Figur. In Figur wird alles Wesentliche definiert, in Held und Monster werden dann nur noch die für den Helden bzw. die Monster charakteristischen Eigenschaften "nachgerüstet".

Eine Klasse Gegenstand ist für alle Waffen, Ausrüstungsgegenstände, Tränke und so weiter zuständig, die der Held finden und aufnehmen kann.

Dann brauchen wir natürlich eine Klasse Dungeon, welche für den Dungeon an sich zuständig ist. Hier müssten wir dann konkret überlegen, wie ein solcher Dungeon aufgebaut sein soll. Besteht er aus lauter quadratischen Feldern, oder wie soll er angelegt werden? Gibt es Wände, Türen und so weiter, Falltüren vielleicht?

Am Ende brauchen wir noch eine Klasse, welche die Objekte, die wir programmieren (also den Helden, die Monster, den Dungeon, die Gegenstände etc.) auf den Bildschirm bringt, ein Applet also oder eine Java-Anwendung. Dieses Applet ist dann auch für die Interaktion mit dem Benutzer zuständig, also für die Tastatur- oder Mausabfragen.

Welches Programmierparadigma?

Bei solchen Großprojekten stellt sich immer die Frage: Wie fängt man am besten an? Und zu dieser Frage gibt es mehr als zwei Antworten. Es kommt immer auf den persönlichen Programmierstil an, und ob man alleine arbeitet oder in einem Team. Können die großen Aufgaben in kleine Teilaufgaben zerlegt werden, die vielleicht von verschiedenen Team-Mitgliedern bearbeitet werden? Dann sind enge Absprachen zwischen den Mitgliedern notwendig, wie die einzelnen Klassen heißen, welche Methoden sie zur Verfügung stellen und wie die Parameter der Methoden genau aussehen. In Schulbüchern macht sich dieses Top-Down-Paradigma immer gut, in der Schulpraxis lässt es sich aber meistens nicht so gut verwirklichen. Ich persönlich neige eher zu dem Bottom-Up-Paradigma. Erst mal kleine Klassen entwickeln und absolut fehlerfrei machen, bevor man diese Klassen dann in ein größeres Projekt integriert. So habe ich es eigentlich schon immer gemacht, und meine Schüler kommen damit auch sehr gut zurecht, also bleiben wir mal bei diesem Vorgehen.