Erkundung
Das Problem: PowerUps aufräumen
Die Missionszentrale: "Einige unserer anderen Piloten haben auf Ihren Missionen ein ziemliches Chaos mit ihren PowerUps angerichtet und sie überall herumfliegen lassen. Die Argo soll sie aufsammeln und zunächst geordnet am Ende eines Korridors ablegen. Wie bisher sollen verschiedene Szenarien möglich sein."
Die Schwierigkeit besteht hier darin, dass die Argo die eingesammelten PowerUps zählen muss und sich die Anzahl merken muss, bevor sie die PowerUps wieder ablegen kann.
Ein Algorithmus zur Lösung des Problems
Zur Formulierung eines Algorithmus wird hier eine Variable zaehler
eingeführt.
setze zaehler auf 0 SOLANGE nicht vor einem Asteroiden: einen Sektor weiterfliegen WENN auf einem PowerUp: erhöhe zaehler um 1 PowerUp aufheben ...
Aufgabe 1
(a) Welche Rolle spielt die Variable zaehler
hier?
(b) Wie könnte man den Algorithmus zur Lösung des Problems fortsetzen?
Ein Programm zur Lösung des Problems
Der Algorithmus wird jetzt in ein Programm übersetzt.
zaehler = 0
while not rockFront():
move()
if onPow():
zaehler = zaehler + 1
removePow()
...
Aufgabe 2
(a) Was bewirken die Anweisungen zaehler = 0
bzw. zaehler = zaehler + 1
?
(b) Versuche, das Programm fertigzustellen. Teste in den verschiedenen Szenarien.
Aufgabe 3 (optional)
Die Argo soll jetzt alle PowerUps im Korridor einsammeln und anschließend die doppelte Anzahl von PowerUps ablegen.
Wie kann man dieses Problem lösen? Kannst du auch verschiedene Algorithmen zur Lösung des Problems angeben?