Bedingungen
Die Ausführung einer Bedingung in einem Karol-Programm bedeutet eine Anfrage an Karol
zu schicken, der mit der entsprechenden Methode reagiert, die Situation seiner Umgebung
begutachtet und mit WAHR oder FALSCH antwortet.
Vordefinierte Bedingungen
Bedingung Karol meldet WAHR,
IstWand wenn er vor der Wand oder vor einem Quader steht und in diese
Richtung schaut
NichtIstWand wenn IstWand nicht zutrifft
IstZiegel wenn er vor einem Ziegel oder Ziegelstapel steht und zu diesem
schaut
IstZiegel(Anzahl) wenn er vor einem Ziegelstapel mit „Anzahl“-vielen Ziegeln steht
und zu diesem schaut
NichtIstZiegel wenn IstZiegel nicht zutrifft
NichtIstZiegel(Anzahl) wenn IstZiegel(Anzahl) nicht zutrifft
IstMarke wenn er auf einer Marke steht
NichtIstMarke wenn IstMarke nicht zutrifft
IstSüden,
IstNorden, wenn Karol in diese Richtung schaut
IstWesten,
IstOsten
Diese Bedingungen sind nur möglich, wenn die Überwachung der Tragfähigkeit von Karol
eingeschalten ist (siehe Programmierumgebung-Einstellungen):
Bedingung Karol meldet WAHR,
IstVoll wenn er seine maximale Tragfähigkeit erreicht hat
NichtIstVoll wenn IstVoll nicht zutrifft
IstLeer wenn er keinen Ziegel mit sich trägt
NichtIstLeer wenn IstLeer nicht zutrifft
HatZiegel wenn er mindestens einen Ziegel mit sich trägt
HatZiegel(Anzahl) wenn er genau „Anzahl“-viele Ziegel mit sich trägt
Eigene, selbstdefinierte Bedingungen
Neben den vordefinierten Bedingungen ist es möglich eigene, selbstdefinierte Bedingungen
festzulegen. In der Definition der Bedingung müssen die Wörter WAHR bzw. FALSCH vor-
kommen, die festlegen welchen Wert die Bedingung zurückgibt. Die Bezeichner der Bedin-
gungen können Buchstaben (auch Umlaute), Ziffern und _ enthalten. Eine neue Bedingung
muss erst definiert werden, bevor sie verwendet werden kann.
Die Verwendung von Parametern wird in einem eigenen Abschnitt beschrieben.
{ Prüft ob rechts von Karol Ziegel sind }
BedingungIstZiegelRechtsschnellfalschRechtsdrehenwenn IstZiegel dann wahr *wennLinksdrehenlangsam*Bedingung—————————-
{ Anfang des Programms }wiederhole solange IstZiegelRechtsSchritt*wiederhole
Schreibe einen Kommentar