Erkundung - Argo lernt neue Befehle
Missonsanalyse Teil 2
Nachdem in der letzten Mission die Argo nur knapp vor einem Energiemangel bewahrt wurde, wird das Protokoll der Mission nochmals genauer untersucht, um zukünftig besser in einer solchen Situation handeln zu können.
while not argo.onPow(): if argo.rockFront(): argo.turnLeft() argo.move() argo.turnRight() argo.move() while argo.rockRight(): argo.move() argo.turnRight() argo.move() argo.turnLeft() else: argo.move() argo.removePow()
Da die Mission nun aber schon eine Weile zurückliegt, ist nicht mehr ganz klar, welche Aufgabe die Anweisungssequenz hat, die ausgeführt wird, wenn Argos Sensoren einen Asteroiden direkt vor sich orten.
Einer der Offiziere erinnert sich, dass mit dieser Sequenz ein Asteroid oder eine Reihe von Asteroiden umflogen werden kann. Er schlägt daher vor, das Protokoll anzupassen.
while not argo.onPow(): if argo.rockFront(): asteroidenAusweichen() else: argo.move() argo.removePow()
Der unbekannte Befehl: asteroidenAusweichen()
Die Crew ist sich einig, dass das neue Protokoll einfacher zu lesen ist. Allerdings wendet eine der technischen Offizierinnen ein, dass die Argo den Befehl asteroidenAusweichen() nicht kennt und daher nicht ausführen kann. Allerdings hat sie eine Möglichkeit gefunden Argo den Befehl beizubringen.
# Unterprogramm (Funktion) def asteroidenAusweichen(): argo.turnLeft() argo.move() argo.turnRight() argo.move() while argo.rockRight(): argo.move() argo.turnRight() argo.move() argo.turnLeft() # Hauptprogramm while not argo.onPow(): if argo.rockFront(): asteroidenAusweichen() else: argo.move() argo.removePow()