Kapitel-Fortschritt: 0/3 Aufgaben gelöst

Kapitel 10

Kapitel 10: Weitere Übungen

Dieses Kapitel ist kein neues Sprachkapitel, sondern eine kleine Sammlung zusätzlicher Aufgaben. Die Ideen sind von FredOverflows Karel inspiriert und für unsere Python-Umgebung angepasst.

Ziel ist jetzt weniger, einen neuen Befehl kennenzulernen, sondern die bekannten Werkzeuge geschickter zu kombinieren: Funktionen, Schleifen, Bedingungen und genaue Vor- und Nachbedingungen.

Wie du diese Aufgaben angehst

Beginne bei jeder Aufgabe mit einer kleinen Funktion für den wiederkehrenden Teil. Wenn diese Funktion am Ende wieder dieselbe Blickrichtung und Position auf der Grundlinie herstellt, kann main() sie zuverlässig mehrfach verwenden.

def main():
    while front_is_clear():
        bearbeite_aktuelles_teilproblem()
        move()
    bearbeite_aktuelles_teilproblem()

Dieses Muster taucht in den Zusatzaufgaben mehrfach wieder auf. Die eigentliche Schwierigkeit steckt darin, das Teilproblem sauber zu formulieren.

Drei neue Herausforderungen

Die Aufgaben steigen leicht an: Erst hängt Karel Lampions unter eine unregelmäßige Decke, dann säubert er Tunnel mit verschiedenen Höhen und zum Schluss springt er über Hürden, deren Höhe nicht vorher fest einprogrammiert werden sollte.

Ausprobieren

Aufgabe

Lampions aufhängen

medium

Karel soll in jeder Spalte einen Lampion direkt unter die Decke hängen. Die Decke ist unregelmäßig hoch. Karel startet links unten, schaut nach Osten und soll am Ende rechts unten wieder nach Osten schauen.

Ziel

  • Karel soll am Ende in Spalte 7, Zeile 1 stehen.
  • Karel soll nach Osten schauen.
  • In der Welt sollen 7 Beeper liegen.
  • Karel soll keine Beeper in der Tasche haben.

Karel-Welt

Aktuelle Welt

7 x 5
Blick nach Osten

1,5
2,5
3,5
4,5
5,5
6,5
7,5
1,4
2,4
3,4
4,4
5,4
6,4
7,4
1,3
2,3
3,3
4,3
5,3
6,3
7,3
1,2
2,2
3,2
4,2
5,2
6,2
7,2
1,1
2,1
3,1
4,1
5,1
6,1
7,1

Karel-Welt

Zielwelt

7 x 5
Blick nach Osten

1,5
2,5
3,5
4,5
5,5
6,5
7,5
1,4
2,4
3,4
4,4
5,4
6,4
7,4
1,3
2,3
3,3
4,3
5,3
6,3
7,3
1,2
2,2
3,2
4,2
5,2
6,2
7,2
1,1
2,1
3,1
4,1
5,1
6,1
7,1

Aktuell unterstützt der Runner Karel-Befehle, eigene Funktionen und einfache for- und while-Schleifen.

Feedback

Schritte: 0

Status: Noch nicht gelöst

Aufgabe

Tunnel säubern

medium

Karel steht vor mehreren senkrechten Tunneln. In jedem Tunnel liegen unterschiedlich viele Beeper. Sammle alle Beeper ein und bringe Karel am Ende unten rechts wieder in Blickrichtung Osten.

Ziel

  • Karel soll am Ende in Spalte 6, Zeile 1 stehen.
  • Karel soll nach Osten schauen.
  • In der Welt sollen keine Beeper liegen.
  • Karel soll 15 Beeper in der Tasche haben.

Karel-Welt

Aktuelle Welt

6 x 5
Blick nach Osten

1,5
2,5
3,5
4,5
5,5
6,5
1,4
2,4
3,4
4,4
5,4
6,4
1,3
2,3
3,3
4,3
5,3
6,3
1,2
2,2
3,2
4,2
5,2
6,2
1,1
2,1
3,1
4,1
5,1
6,1

Karel-Welt

Zielwelt

6 x 5
Blick nach Osten

1,5
2,5
3,5
4,5
5,5
6,5
1,4
2,4
3,4
4,4
5,4
6,4
1,3
2,3
3,3
4,3
5,3
6,3
1,2
2,2
3,2
4,2
5,2
6,2
1,1
2,1
3,1
4,1
5,1
6,1

Aktuell unterstützt der Runner Karel-Befehle, eigene Funktionen und einfache for- und while-Schleifen.

Feedback

Schritte: 0

Status: Noch nicht gelöst

Aufgabe

Hürdenlauf

hard

Karel läuft auf der unteren Reihe nach Osten. Wenn eine Hürde im Weg steht, soll Karel darüberklettern und danach weiterlaufen. Am Ziel liegt ein Beeper als Medaille.

Ziel

  • Karel soll am Ende in Spalte 9, Zeile 1 stehen.
  • Karel soll nach Osten schauen.
  • In der Welt sollen keine Beeper liegen.
  • Karel soll 1 Beeper in der Tasche haben.

Karel-Welt

Aktuelle Welt

9 x 5
Blick nach Osten

1,5
2,5
3,5
4,5
5,5
6,5
7,5
8,5
9,5
1,4
2,4
3,4
4,4
5,4
6,4
7,4
8,4
9,4
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
9,3
1,2
2,2
3,2
4,2
5,2
6,2
7,2
8,2
9,2
1,1
2,1
3,1
4,1
5,1
6,1
7,1
8,1
9,1

Karel-Welt

Zielwelt

9 x 5
Blick nach Osten

1,5
2,5
3,5
4,5
5,5
6,5
7,5
8,5
9,5
1,4
2,4
3,4
4,4
5,4
6,4
7,4
8,4
9,4
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
9,3
1,2
2,2
3,2
4,2
5,2
6,2
7,2
8,2
9,2
1,1
2,1
3,1
4,1
5,1
6,1
7,1
8,1
9,1

Aktuell unterstützt der Runner Karel-Befehle, eigene Funktionen und einfache for- und while-Schleifen.

Feedback

Schritte: 0

Status: Noch nicht gelöst