i

Erkundung

Alle Lücken füllen

Die Missionszentrale meldet sich:

Nachdem wir jetzt schon die Löcher am Anfang und Ende des Asteroidenkorridors füllen konnten, gehen wir noch einen Schritt weiter: Wir möchten, dass alle Löcher im Korridor mit einem PowerUp verschlossen werden, egal, wo sie sich befinden. Natürlich soll das Programm wieder für jeden beliebigen Korridor funktionieren.

welt_vorher pfeil welt_nachher
welt_vorher pfeil welt_nachher

Aufgabe 1: Vorarbeit skizzieren

Bevor wir das Problem vollständig lösen, betrachten wir ein kleineres Problem: Die Argo soll das PowerUp statt in die Lücke einfach direkt auf den Korridor legen.

welt_vorher pfeil welt_nachher
welt_vorher pfeil welt_nachher

Vervollständige dafür die folgenden Überlegungen. Dafür kannst du verwenden, dass die Argo nicht nur einen Sensor für die Asteroiden vor ihr hat, sondern auch die Asteroiden links und rechts von sich erspüren kann (oder natürlich die Abwesenheit von diesen).

SOLANGE kein Asteroid vor dir:
	Sektor weiterfliegen
	WENN kein ... :
		...
	WENN kein ...
		...

Aufgabe 2: Vorarbeit in Python

Übersetze diese Überlegungen nun in ein Python-Programm für die Argo. Die neuen Sensoren benutzt du durch rockLeft() und rockRight().

Aufgabe 3: Das Hauptproblem lösen

Um das Hauptproblem zu lösen, musst du nun noch die Anweisungssequenz ergänzen, durch die die Argo in die Lücken fliegt. Tipp: Das hast du schon im letzten Kapitel gelöst! Teste dein Problem für alle verfügbaren Szenarien.

Aufgabe 4: Engstellen markieren

Eine neue Nachricht der Missionszentrale:

Einige Raumschiffe hatten zuletzt Probleme, durch Engstellen in einem Atsreoidenkorridor zu fliegen, also Stellen, an denen sowohl ein Asteroid rechts und links des Raumschiffes ist. Wenn die Argo diese Stellen mit einem PowerUp markieren könnte, würde die Navigation leichter fallen.

welt_vorher pfeil welt_nachher
welt_vorher pfeil welt_nachher

Die Argo kann prüfen, ob zwei ihrer Sensoren zeitgleich ausschlagen, indem du den and-Operator verwendest:

if rockRight() and rockLeft():

Suche

v
6.1.3.1
dev.inf-schule.de/imperative-programmierung/spacebug/fallunterscheidungen/lernstrecke
dev.inf-schule.de/6.1.3.1
dev.inf-schule.de/@/page/m2sqWhZnZZVYAz6g

Rückmeldung geben