Lösungsvorschlag Einseitige bedingte Anweisung
Aus ComeniusWiki
//Eine Anweisung um den Code zu verkürzen.
Anweisung Umdrehen
LinksDrehen
LinksDrehen
*Anweisung
//Um das Problem von einem beliebigen Startpunkt aus lösen zu können, muss sich
//Karol erst einmal auf eine Startposition in der Ecke bringen.
Anweisung PositionEinnehmen
wiederhole 2 mal
wiederhole solange NichtIstWand
Schritt
*wiederhole
LinksDrehen
*wiederhole
*Anweisung
//Die Anweisung Test überprüft, ob eine Marke vorhanden ist.
//Wenn Karol dabei nicht vor der Wand steht, geht er einen Schritt weiter,
//dreht sich um, legt einen Ziegel, dreht sich wieder um und macht weiter.
//Steht er vor der Wand, macht er einen Schritt zurück, legt den Ziegel,
//stellt sich auf den Ziegel und macht dann weiter.
Anweisung Test
wenn IstMarke dann
wenn NichtIstWand dann
Schritt
Umdrehen
Hinlegen
Umdrehen
sonst
Umdrehen
Schritt
Umdrehen
Hinlegen
Schritt
*wenn
*wenn
*Anweisung
Anweisung Bahn
Wiederhole solange NichtIstWand
Test
Schritt
Test //Lässt man hier den 2.Test aus, werden Marken vor der Wand ignoriert.
*wiederhole
*Anweisung
Programm
PositionEinnehmen
Wiederhole 4 mal
Bahn
LinksDrehen
Schritt
LinksDrehen
Bahn
RechtsDrehen
Schritt
RechtsDrehen
*wiederhole
Bahn //Karol läuft vier mal auf und ab und dann noch eine Bahn bis ans Ziel.
*Programm

