1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
(*
*********************************************************
*********************************************************
** **
** ls-Herbert und Robbi 2 **
** **
** Version 1.1 **
** **
** (Stand: 30.03.88) **
** **
** **
** Autor: Wolfgang Weber, Bielefeld **
** **
** **
** Copyright (C) 1987, 1988 Eva Latta-Weber, Bielefeld **
** **
** Copyright (C) 1988 ERGOS GmbH, Siegburg **
** **
*********************************************************
*********************************************************
*)
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)
|