Dies ist eine alte Version des Dokuments!
Schatzssuche
Im Folgenden sollen Teile eines Spiels implementiert werden, in dem zwei Schatzsucher auf einem quadratischen Spielfeld, hier als „Welt“ bezeichnet, einen Schatz suchen. Die genauen Spielregeln für die Schatzsuche selbst sind für die folgenden Aufgaben nicht relevant, es geht lediglich darum, die Welt mit einem Schatz und den Suchern anzulegen und zu verwalten.
In der Implementierung besitzt die Klasse Welt
ein zweidimensionales Array zur Speicherung
des Spielfeldes. Das Attribut groesse
gibt die Länge und Breite des Arrays an. Jedes Element
des Arrays entspricht einem Feld der Welt. Der Eintrag null
im Array steht für ein
leeres Feld, andernfalls kann mit feld[i][j]
die Figur in der i
-ten Zeile und j
-ten Spalte angesprochen werden. Eine Figur kann entweder ein Akteur oder ein Schatz sein.
(A1)
Übertrage die UML-Klassendiagramme – ohne die Attribute und die Methoden – auf dein Lösungsblatt und ergänze die Klassenbeziehungen, indem du die gerichteten Assoziationen und Vererbungen einzeichnest.
Anmerkung: Für die folgenden Programmieraufgaben dürfen Methoden, die im obigen UML-Klassendigramm aufgeführt sind, auch benutzt werden, sofern in der konkreten Aufgabenstellung nichts anderes gefordert wird. Die Programmieraufgaben sind – als Übung für die Abiturprüfung – auf Papier zu lösen.
(A2)
Implementiere die Klasse Position
aus dem UML-Klassendiagramm.
(A3)
Implementieren Sie einen Konstruktor Spiel(weltGroesse: int) so, dass eine Welt der Größe weltGroesse mit zwei Schatzsuchern namens „Anton“ und „Berta“ und einem Schatz im Wert von 50 € erzeugt wird. Die Schatzsucher und der Schatz sollen unter Verwendung der Methode figurZufaelligPlatzieren(figur: Figur) aus der Klasse Welt eine zufällige Startposition erhalten. Hinweis: Sie dürfen davon ausgehen, dass die Methode figurZufaelligPlatzieren bereits implementiert ist.