wie du mit Hilfe der if-else-Struktur bewirken kannst, dass bestimmte Programmblöcke nur unter gewissen Bedingungen ausgeführt werden.
MUSTERBEISPIELE
Die Selektion wird mit dem Schlüsselwort if eingeleitet, gefolgt von einer Bedingung. Die Anweisungen nach if werden nur dann ausgeführt, wenn die Bedingung wahr ist, sonst werden die Anweisungen nach else ausgeführt. In derif-Bedingung werden üblicherweise die Vergleichsoperatoren >, >=, < , <= , == , != verwendet. Die Anweisungen im if- und else-Block müssen eingerückt sein.
In folgenden Beispiel bewegt sich die Schlange auf einer quadratischen Bahn. Die Schlange hat einen gelben Schwanz, wenn sich ihr Kopf in der linken Hälfte der Oxocard befindet, sonst ist der Schwanz blau.
Du fragst nach jedem Vorwärtsschritt die aktuelle x-Koordinate mit dem Befehl getX() ab. Ist die Koordinate kleiner als 4, wird die Schwanzfarbe mit dem Befehl setTailColor() auf gelb gesetzt, sonst wird sie auf blau gesetzt.
Der else-Block kann auch wegfallen. In diesem Fall führt das Programm den if-Block aus, falls die Bedingung erfüllt ist und fährt dann mit der Zeile unter dem if-Block weiter. Ist die Bedingung nicht erfüllt, wird der if-Block einfach übersprungen.
In deinem Beispiel ändert die Schlange die Bewegungsrichtung wenn sie am rechten oder linken Rand ankommt. Beachte, dass im Vergleichsoperator das Gleichheitszeichen verdoppelt wird und dass man Bedingungen mit or verbinden kann. Eine solche Bedingung ist wahr ist, wenn die eine oder die andere Teilbedingung (oder auch beide) wahr sind.
Programm:
from oxosnake import *
makeSnake(speed = 90)
right(90)
repeat:
if getX() == 7 or getX() == 0:
left(180)
forward()
Mit der Programmstruktur Selektion kannst du bewirkt, dass bestimmte Anweisungen nur unter gewissen Bedingungen ausgeführt werden. Sie funktioniert gleich wie in der Umgangssprache: "Falls eine Bedingung erfüllt ist, dann mache dies, sonst mache jenes.
Man kann Bedingungen A und B mit dem Schlüsselwort or verbinden. Es gibt dann für die kombinierte Bedingung:
Man kann Bedingungen A und B mit or oder and verbinden. Dann gibt es folgende Möglichkeiten:
A
B
A or B
A and B
False
False
False
False
False
True
True
False
True
False
True
False
True
True
True
True
ZUM SELBST LÖSEN
1.
Eine Schlange startet in der linken unteren Ecke und bewegt sich von links nach rechts. Wenn sie am rechten Rand angekommen ist, wird sie wieder an den linken Rand zurückversetzt und bewegt sich wiederholt von links nach rechts.
2.
Die Schlange startet an der Position (1, 6) und bewegt sich in einer endlosen Schleife auf einem Quadrat mit der Seitenlänge 5. Nach jeder zurückgelegten Seite fügst du mit dem Befehl growTail() ein Schwanzelement hinzu, bis die Schlange so lang ist, dass der Kopf das letzte Schanzelement berührt. Das kannst du abfragen mit if intersect():
Dann soll die Schwanzfarbe auf BLUE wechseln und das Programm abbrechen.