Zurück zur Zentralseite "Aufwendigere Algorithmen"

Karol räumt auf

Karol soll in seiner Welt „aufräumen“. Er muss also alle Ziegel aufheben. Dazu soll schrittweise eine Methode aufraeumen() entworfen werden.

Dazu entwickeln Sie zuerst Hilfsmethoden, die Teilprobleme lösen werden. Anschließend werden diese Hilfsmethoden von der Methode aufraeumen() verwendet werden, um das Gesamtproblem lösen zu können.

Da es sich bei den nun folgenden Methoden nur um Hilfsmethoden handelt, sollten diese als private deklariert werden, da sie nach außen nicht sichtbar sein müssen. Zum Testen der Methoden ist es aber sinnvoll, sie zuerst public zu setzen.

Arbeitsauftrag 1

Auf einem Feld können auch mehrere Ziegel sein. Erstellen Sie also zuerst eine Methode feldAufraeumen(), bei der das Feld vor Karol von Steinen befreit wird. Anschließend soll er einen Schritt machen.

Lösung

Arbeitsauftrag 2

Benutzen Sie diese Methode feldAufraeumen() in einer Methode reiheAufraeumen(), die vom Standpunkt bis zur nächsten Wand in Blickrichtung aufräumt. 

Lösung

Arbeitsauftrag 3

Anfangs steht Karol allerdings an einer zufälligen Position. Um aufzuräumen, geht er erstmal in eine Ecke seiner Welt wie auf dem Bild links oben (das kann er schon, eine Methode zurEckeGehen() hat er ja bereits). Nun kann die Welt Reihe für Reihe aufgeräumt werden und zwar wie im Bild rechts oben dargestellt.. Entwickeln Sie nun unter Verwendung der in den vorherigen Aufgaben programmierten Methoden die Methode aufraeumen(). Um die Methode testen zu können, kann vor dem Aufruf von aufraeumen() die im Kapitel "Vorbereitung der Programmierumgebung zur Verfügung gestellte Methode unordnungMachen() aufgerufen werden. Es ist auch möglich, unordnungMachen() als erste Anweisung in aufraeumen() anzugeben.

Lösung

Zusatzaufgaben:

Arbeitsauftrag 4

Entwerfen Sie ein Programm, bei dem Karol eine Treppe von einer Wand bis zur gegenüberliegenden Wand baut (der Algorithmus soll für jede Welt-Größe und für jede Ausgangsposition funktionieren).

Lösung

Arbeitsauftrag 5

Zeichnen Sie ein Struktogramm zu Ihrer Lösung von Arbeitsauftrag 4.

Lösung


Zurück zur Zentralseite "Aufwendigere Algorithmen"