summaryrefslogtreecommitdiff
path: root/hamster/ls-Herbert und Robbi 2
diff options
context:
space:
mode:
Diffstat (limited to 'hamster/ls-Herbert und Robbi 2')
-rw-r--r--hamster/ls-Herbert und Robbi 2120
1 files changed, 114 insertions, 6 deletions
diff --git a/hamster/ls-Herbert und Robbi 2 b/hamster/ls-Herbert und Robbi 2
index 7394932..a8ce067 100644
--- a/hamster/ls-Herbert und Robbi 2
+++ b/hamster/ls-Herbert und Robbi 2
@@ -22,10 +22,118 @@
*)
-PACKET ls herbert und robbi 2 DEFINES{} rechts frei,{} links frei,{} hinten frei,{} korn vorn, werkstueck vorn,{} korn links, werkstueck links,{} korn rechts, werkstueck rechts,{} korn hinten, werkstueck hinten:{}BOOL PROC rechts frei:{} rechts um;{} IF vorn frei{} THEN links um; TRUE{} ELSE links um; FALSE{} FI{}END PROC rechts frei;{}BOOL PROC links frei:{} links um;{} IF vorn frei{} THEN rechts um; TRUE{} ELSE rechts um; FALSE{}
- FI{}END PROC links frei;{}BOOL PROC hinten frei:{} kehrt;{} IF vorn frei{} THEN kehrt; TRUE{} ELSE kehrt; FALSE{} FI{}END PROC hinten frei;{}BOOL PROC korn vorn:{} IF vorn frei{} THEN untersuche feld vor dir{} ELSE FALSE{} FI.{} untersuche feld vor dir:{} vor;{} IF korn da{} THEN mache vorwaertsgehen rueckgaengig; TRUE{} ELSE mache vorwaertsgehen rueckgaengig; FALSE{} FI.{} mache vorwaertsgehen rueckgaengig:{} kehrt; vor; kehrt{}END PROC korn vorn;{}
-BOOL PROC korn links:{} links um;{} IF vorn frei{} THEN untersuche feld links{} ELSE rechts um; FALSE{} FI.{} untersuche feld links:{} vor;{} IF korn da{} THEN mache linkswende rueckgaengig; TRUE{} ELSE mache linkswende rueckgaengig; FALSE{} FI.{} mache linkswende rueckgaengig:{} kehrt; vor; links um{}END PROC korn links;{}BOOL PROC korn rechts:{} rechts um;{} IF vorn frei{} THEN untersuche feld rechts{} ELSE links um; FALSE{} FI.{} untersuche feld rechts:{}
- vor;{} IF korn da{} THEN mache rechtswende rueckgaengig; TRUE{} ELSE mache rechtswende rueckgaengig; FALSE{} FI.{} mache rechtswende rueckgaengig:{} kehrt; vor; rechts um{}END PROC korn rechts;{}BOOL PROC korn hinten:{} kehrt;{} IF vorn frei{} THEN untersuche feld hinter dir{} ELSE kehrt; FALSE{} FI.{} untersuche feld hinter dir:{} vor;{} IF korn da{} THEN mache kehrtwende rueckgaengig; TRUE{} ELSE mache kehrtwende rueckgaengig; FALSE{} FI.{}
- mache kehrtwende rueckgaengig:{} kehrt; vor{}END PROC korn hinten;{}PROC kehrt:{} links um; links um{}END PROC kehrt;{}PROC rechts um:{} links um; links um; links um{}END PROC rechts um;{}BOOL PROC werkstueck vorn:{} korn vorn{}END PROC werkstueck vorn;{}BOOL PROC werkstueck links:{} korn links{}END PROC werkstueck links;{}BOOL PROC werkstueck rechts:{} korn rechts{}END PROC werkstueck rechts;{}BOOL PROC werkstueck hinten:{} korn hinten{}END PROC werkstueck hinten;{}END PACKET ls herbert und robbi 2;{}
-befehlssatz erweitern (TRUE){}
+PACKET ls herbert und robbi 2 DEFINES
+ rechts frei,
+ links frei,
+ hinten frei,
+ korn vorn, werkstueck vorn,
+ korn links, werkstueck links,
+ korn rechts, werkstueck rechts,
+ korn hinten, werkstueck hinten:
+BOOL PROC rechts frei:
+ rechts um;
+ IF vorn frei
+ THEN links um; TRUE
+ ELSE links um; FALSE
+ FI
+END PROC rechts frei;
+BOOL PROC links frei:
+ links um;
+ IF vorn frei
+ THEN rechts um; TRUE
+ ELSE rechts um; FALSE
+
+ FI
+END PROC links frei;
+BOOL PROC hinten frei:
+ kehrt;
+ IF vorn frei
+ THEN kehrt; TRUE
+ ELSE kehrt; FALSE
+ FI
+END PROC hinten frei;
+BOOL PROC korn vorn:
+ IF vorn frei
+ THEN untersuche feld vor dir
+ ELSE FALSE
+ FI.
+ untersuche feld vor dir:
+ vor;
+ IF korn da
+ THEN mache vorwaertsgehen rueckgaengig; TRUE
+ ELSE mache vorwaertsgehen rueckgaengig; FALSE
+ FI.
+ mache vorwaertsgehen rueckgaengig:
+ kehrt; vor; kehrt
+END PROC korn vorn;
+
+BOOL PROC korn links:
+ links um;
+ IF vorn frei
+ THEN untersuche feld links
+ ELSE rechts um; FALSE
+ FI.
+ untersuche feld links:
+ vor;
+ IF korn da
+ THEN mache linkswende rueckgaengig; TRUE
+ ELSE mache linkswende rueckgaengig; FALSE
+ FI.
+ mache linkswende rueckgaengig:
+ kehrt; vor; links um
+END PROC korn links;
+BOOL PROC korn rechts:
+ rechts um;
+ IF vorn frei
+ THEN untersuche feld rechts
+ ELSE links um; FALSE
+ FI.
+ untersuche feld rechts:
+
+ vor;
+ IF korn da
+ THEN mache rechtswende rueckgaengig; TRUE
+ ELSE mache rechtswende rueckgaengig; FALSE
+ FI.
+ mache rechtswende rueckgaengig:
+ kehrt; vor; rechts um
+END PROC korn rechts;
+BOOL PROC korn hinten:
+ kehrt;
+ IF vorn frei
+ THEN untersuche feld hinter dir
+ ELSE kehrt; FALSE
+ FI.
+ untersuche feld hinter dir:
+ vor;
+ IF korn da
+ THEN mache kehrtwende rueckgaengig; TRUE
+ ELSE mache kehrtwende rueckgaengig; FALSE
+ FI.
+
+ mache kehrtwende rueckgaengig:
+ kehrt; vor
+END PROC korn hinten;
+PROC kehrt:
+ links um; links um
+END PROC kehrt;
+PROC rechts um:
+ links um; links um; links um
+END PROC rechts um;
+BOOL PROC werkstueck vorn:
+ korn vorn
+END PROC werkstueck vorn;
+BOOL PROC werkstueck links:
+ korn links
+END PROC werkstueck links;
+BOOL PROC werkstueck rechts:
+ korn rechts
+END PROC werkstueck rechts;
+BOOL PROC werkstueck hinten:
+ korn hinten
+END PROC werkstueck hinten;
+END PACKET ls herbert und robbi 2;
+
+befehlssatz erweitern (TRUE)
+