lny-interpreter 0.99.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/launch.json +19 -0
- package/README.md +96 -0
- package/book_ALT/LennySmartIcon1.png +0 -0
- package/book_ALT/chapter01.md +141 -0
- package/book_ALT/chapter02.md +48 -0
- package/book_ALT/chapter03.md +28 -0
- package/book_ALT/chapter04.md +19 -0
- package/book_ALT/chapter05.md +21 -0
- package/book_ALT/chapter06.md +167 -0
- package/book_ALT/chapter07.md +232 -0
- package/book_ALT/chapter08.md +200 -0
- package/book_ALT/chapter09.md +175 -0
- package/book_ALT/chapter10.md +196 -0
- package/book_ALT/deckblatt.md +60 -0
- package/book_ALT/images/Lenny01.png +0 -0
- package/book_ALT/images/Lenny02.png +0 -0
- package/book_ALT/images/Lenny03.png +0 -0
- package/book_ALT/images/Lenny04.png +0 -0
- package/book_ALT/images/Lenny05.png +0 -0
- package/book_ALT/images/Lenny06.png +0 -0
- package/book_ALT/images/Lenny07.png +0 -0
- package/book_ALT/images/Lenny08.png +0 -0
- package/book_ALT/images/Lenny09.png +0 -0
- package/book_ALT/images/Lenny10.png +0 -0
- package/book_ALT/images/Lenny11.png +0 -0
- package/book_ALT/images/Lenny12.png +0 -0
- package/book_ALT/images/Lenny13.png +0 -0
- package/book_ALT/images/Lenny14.png +0 -0
- package/book_ALT/images/Lenny15.png +0 -0
- package/book_ALT/lehrerheft.md +255 -0
- package/dist/ast/ast.d.ts +126 -0
- package/dist/ast/ast.d.ts.map +1 -0
- package/dist/ast/ast.js +3 -0
- package/dist/ast/ast.js.map +1 -0
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +1067 -0
- package/dist/browser.js.map +1 -0
- package/dist/examples.d.ts +11 -0
- package/dist/examples.d.ts.map +1 -0
- package/dist/examples.js +65 -0
- package/dist/examples.js.map +1 -0
- package/dist/i18n/i18n.d.ts +18 -0
- package/dist/i18n/i18n.d.ts.map +1 -0
- package/dist/i18n/i18n.js +505 -0
- package/dist/i18n/i18n.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/interpreter/interpreter.d.ts +40 -0
- package/dist/interpreter/interpreter.d.ts.map +1 -0
- package/dist/interpreter/interpreter.js +415 -0
- package/dist/interpreter/interpreter.js.map +1 -0
- package/dist/lexer/lexer.d.ts +87 -0
- package/dist/lexer/lexer.d.ts.map +1 -0
- package/dist/lexer/lexer.js +425 -0
- package/dist/lexer/lexer.js.map +1 -0
- package/dist/lny-config.yml +6 -0
- package/dist/parser/parser.d.ts +50 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +605 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/repl.d.ts +3 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +472 -0
- package/dist/repl.js.map +1 -0
- package/dist/run-file.d.ts +2 -0
- package/dist/run-file.d.ts.map +1 -0
- package/dist/run-file.js +140 -0
- package/dist/run-file.js.map +1 -0
- package/dist/test.d.ts +2 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +72 -0
- package/dist/test.js.map +1 -0
- package/dist/world/world.d.ts +103 -0
- package/dist/world/world.d.ts.map +1 -0
- package/dist/world/world.js +416 -0
- package/dist/world/world.js.map +1 -0
- package/docs/About.md +19 -0
- package/docs/INTERPRETER.md +240 -0
- package/docs/README.md +68 -0
- package/docs/i18n/README.md +20 -0
- package/docs/lny-referenz.md +161 -0
- package/docs/lny_ueberblick.md +33 -0
- package/examples/00-demo.lny +3 -0
- package/examples/01-variable-assignment.lny +4 -0
- package/examples/02-conditional.lny +7 -0
- package/examples/03-while-loop.lny +6 -0
- package/examples/04-for-loop.lny +5 -0
- package/examples/05-lenny-movement.lny +10 -0
- package/examples/06-procedure.lny +6 -0
- package/examples/fuer-range-1.lny +4 -0
- package/examples/fuer-range-2.lny +6 -0
- package/examples/fuer-range-3.lny +6 -0
- package/examples/fuer-range-4.lny +4 -0
- package/examples/fuer-range-5.lny +6 -0
- package/examples/solange-verschachtelt.lny +12 -0
- package/favicon.ico +0 -0
- package/index.html +108 -0
- package/jest.config.js +7 -0
- package/lny-config.yml +6 -0
- package/package.json +37 -0
- package/settings.json +4 -0
- package/src/ast/ast.ts +182 -0
- package/src/browser.ts +1274 -0
- package/src/examples.ts +68 -0
- package/src/i18n/i18n.ts +537 -0
- package/src/index.ts +6 -0
- package/src/interpreter/interpreter.ts +453 -0
- package/src/lexer/lexer.ts +493 -0
- package/src/parser/parser.ts +711 -0
- package/src/repl.ts +496 -0
- package/src/test.ts +71 -0
- package/src/world/world.ts +512 -0
- package/style.css +315 -0
- package/test1.lny +2 -0
- package/tests/interpreter.test.ts +42 -0
- package/tests/parser.test.ts +18 -0
- package/tsconfig.json +19 -0
- package/vercel.json +7 -0
- package/vscode-lny/.vscode/launch.json +13 -0
- package/vscode-lny/.vscodeignore +3 -0
- package/vscode-lny/README.md +83 -0
- package/vscode-lny/language-configuration.json +19 -0
- package/vscode-lny/license.txt +21 -0
- package/vscode-lny/lny-language-0.1.0.vsix +0 -0
- package/vscode-lny/package.json +41 -0
- package/vscode-lny/snippets/lny.json +136 -0
- package/vscode-lny/syntaxes/lny.tmLanguage.json +85 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# ๐ Kapitel 7 โ Die Welt von Lenny
|
|
2
|
+
|
|
3
|
+
## ๐ก Wo ist Lenny eigentlich?
|
|
4
|
+
|
|
5
|
+
Bisher haben wir nur Befehle gesehen wie:
|
|
6
|
+
|
|
7
|
+
```lny
|
|
8
|
+
LAUF
|
|
9
|
+
DREH_LINKS
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Aber wo bewegt sich Lenny รผberhaupt?
|
|
13
|
+
|
|
14
|
+
๐ Lenny lebt in einer Welt aus Feldern.
|
|
15
|
+
|
|
16
|
+
Du kannst dir das wie ein Gitter (engl. *grid*) vorstellen. Die Grรถรe ist am Anfang 10x10, also 10 Felder pro Zeile und 10 Zeilen. Also 100 Felder. Das Feld kann aber auch eine andere Grรถรe haben.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## ๐ฉ Die Welt als Spielfeld
|
|
21
|
+
|
|
22
|
+
Eine einfache Welt kรถnnte so aussehen:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
[ ] [ ] [ ]
|
|
26
|
+
[ ] [L] [ ]
|
|
27
|
+
[ ] [ ] [K]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- [L] โ Lenny
|
|
31
|
+
- [K] โ Knochen
|
|
32
|
+
- [ ] โ freies Feld
|
|
33
|
+
|
|
34
|
+
๐ Lenny steht immer auf genau einem Feld
|
|
35
|
+
๐ und schaut in eine Richtung
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ๐งญ Lennys Blickrichtung
|
|
40
|
+
|
|
41
|
+
Lenny schaut immer nach vorne.
|
|
42
|
+
|
|
43
|
+
Das ist wichtig fรผr viele Befehle:
|
|
44
|
+
|
|
45
|
+
- LAUF โ geht ein Feld nach vorne
|
|
46
|
+
- IST_FREI โ prรผft das Feld vor Lenny
|
|
47
|
+
- IST_KNOCHEN โ prรผft, ob dort ein Knochen liegt
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## ๐พ Bewegung
|
|
52
|
+
|
|
53
|
+
```lny
|
|
54
|
+
LAUF
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
๐ Lenny geht ein Feld nach vorne
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## ๐ Drehen
|
|
62
|
+
|
|
63
|
+
```lny
|
|
64
|
+
DREH_LINKS
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
๐ Lenny dreht sich nach links
|
|
68
|
+
|
|
69
|
+
Wenn du dich zweimal drehst:
|
|
70
|
+
|
|
71
|
+
```lny
|
|
72
|
+
DREH_LINKS
|
|
73
|
+
DREH_LINKS
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
๐ schaut Lenny in die entgegengesetzte Richtung
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## ๐ฆด Knochen aufnehmen
|
|
81
|
+
|
|
82
|
+
```lny
|
|
83
|
+
NIMM
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
๐ Lenny nimmt einen Knochen vom Feld vor sich
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## ๐ฆด Knochen ablegen
|
|
91
|
+
|
|
92
|
+
```lny
|
|
93
|
+
GIB
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
๐ Lenny legt einen Knochen ab
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## ๐ Prรผfen der Umgebung
|
|
101
|
+
|
|
102
|
+
```lny
|
|
103
|
+
IST_FREI
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
๐ Gibt WAHR zurรผck, wenn das Feld vor Lenny frei ist
|
|
107
|
+
|
|
108
|
+
```lny
|
|
109
|
+
IST_KNOCHEN
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
๐ Gibt WAHR zurรผck, wenn dort ein Knochen liegt
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## ๐พ Erstes richtiges Programm
|
|
117
|
+
|
|
118
|
+
Lenny soll laufen, bis er vor einem Hindernis steht:
|
|
119
|
+
|
|
120
|
+
```lny
|
|
121
|
+
SOLANGE IST_FREI
|
|
122
|
+
LAUF
|
|
123
|
+
ENDE
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
๐ Lenny lรคuft automatisch so weit wie mรถglich
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## ๐ฆด Knochen finden
|
|
131
|
+
|
|
132
|
+
Lenny soll einen Knochen aufnehmen, wenn einer da ist:
|
|
133
|
+
|
|
134
|
+
```lny
|
|
135
|
+
WENN IST_KNOCHEN
|
|
136
|
+
DANN
|
|
137
|
+
NIMM
|
|
138
|
+
ENDE
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## ๐ Kombination
|
|
144
|
+
|
|
145
|
+
Jetzt kombinieren wir Bewegung und Entscheidung:
|
|
146
|
+
|
|
147
|
+
```lny
|
|
148
|
+
SOLANGE IST_FREI
|
|
149
|
+
WENN IST_KNOCHEN
|
|
150
|
+
DANN
|
|
151
|
+
NIMM
|
|
152
|
+
ENDE
|
|
153
|
+
|
|
154
|
+
LAUF
|
|
155
|
+
ENDE
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
๐ Lenny lรคuft los und sammelt unterwegs Knochen ein
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## โ ๏ธ Hindernisse
|
|
163
|
+
|
|
164
|
+
Wenn das Feld vor Lenny nicht frei ist:
|
|
165
|
+
|
|
166
|
+
๐ kann er nicht laufen
|
|
167
|
+
|
|
168
|
+
Dann brauchst du eine Alternative:
|
|
169
|
+
|
|
170
|
+
```lny
|
|
171
|
+
WENN IST_FREI
|
|
172
|
+
DANN
|
|
173
|
+
LAUF
|
|
174
|
+
SONST
|
|
175
|
+
DREH_LINKS
|
|
176
|
+
ENDE
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## ๐ฏ Aufgabe 1
|
|
182
|
+
|
|
183
|
+
Lenny steht vor einem Knochen.
|
|
184
|
+
|
|
185
|
+
Was passiert?
|
|
186
|
+
|
|
187
|
+
```lny
|
|
188
|
+
NIMM
|
|
189
|
+
LAUF
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## ๐ฏ Aufgabe 2
|
|
195
|
+
|
|
196
|
+
Lenny soll laufen, bis er ein Hindernis trifft,
|
|
197
|
+
und sich dann nach links drehen.
|
|
198
|
+
|
|
199
|
+
```lny
|
|
200
|
+
SOLANGE IST_FREI
|
|
201
|
+
LAUF
|
|
202
|
+
ENDE
|
|
203
|
+
|
|
204
|
+
DREH_LINKS
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
๐ Beschreibe, was Lenny macht.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## ๐ฏ Aufgabe 3 (Bonus)
|
|
212
|
+
|
|
213
|
+
Schreibe ein Programm:
|
|
214
|
+
|
|
215
|
+
๐ Lenny lรคuft los
|
|
216
|
+
๐ Wenn er einen Knochen sieht, nimmt er ihn
|
|
217
|
+
๐ Wenn er nicht weiter kann, dreht er sich
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## ๐ Ausblick
|
|
222
|
+
|
|
223
|
+
Jetzt kennst du:
|
|
224
|
+
|
|
225
|
+
- die Welt von Lenny
|
|
226
|
+
- Bewegung
|
|
227
|
+
- Entscheidungen
|
|
228
|
+
- Wiederholungen
|
|
229
|
+
|
|
230
|
+
๐ Im nรคchsten Schritt kannst du kleine Spiele bauen.
|
|
231
|
+
|
|
232
|
+
๐ถ Lenny ist bereit. Du auch?
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# ๐ถ Kapitel 8 โ Mini-Projekte mit Lenny
|
|
2
|
+
|
|
3
|
+
## ๐ฏ Ziel
|
|
4
|
+
|
|
5
|
+
In diesem Kapitel setzt du alles Gelernte ein:
|
|
6
|
+
|
|
7
|
+
- Befehle
|
|
8
|
+
- Variablen
|
|
9
|
+
- Entscheidungen
|
|
10
|
+
- Wiederholungen
|
|
11
|
+
- Listen
|
|
12
|
+
- Prozeduren
|
|
13
|
+
|
|
14
|
+
๐ Jetzt wird programmiert!
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# ๐ฉ Projekt 1 โ Laufe im Quadrat
|
|
19
|
+
|
|
20
|
+
## ๐ก Aufgabe
|
|
21
|
+
|
|
22
|
+
Lenny soll ein Quadrat laufen.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## ๐ง Idee
|
|
27
|
+
|
|
28
|
+
Ein Quadrat hat 4 Seiten.
|
|
29
|
+
|
|
30
|
+
๐ Immer:
|
|
31
|
+
|
|
32
|
+
- LAUF
|
|
33
|
+
- DREH_LINKS
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## ๐งพ Lรถsung
|
|
38
|
+
|
|
39
|
+
```lny
|
|
40
|
+
PROZEDUR geheQuadrat
|
|
41
|
+
LAUF
|
|
42
|
+
DREH_LINKS
|
|
43
|
+
LAUF
|
|
44
|
+
DREH_LINKS
|
|
45
|
+
LAUF
|
|
46
|
+
DREH_LINKS
|
|
47
|
+
LAUF
|
|
48
|
+
DREH_LINKS
|
|
49
|
+
ENDE
|
|
50
|
+
|
|
51
|
+
geheQuadrat
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## ๐ Erweiterung
|
|
57
|
+
|
|
58
|
+
๐ Nutze eine Schleife!
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
# ๐ฆด Projekt 2 โ Sammle alle Knochen
|
|
63
|
+
|
|
64
|
+
## ๐ก Aufgabe
|
|
65
|
+
|
|
66
|
+
Lenny soll laufen und alle Knochen einsammeln.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## ๐งพ Lรถsung
|
|
71
|
+
|
|
72
|
+
```lny
|
|
73
|
+
SOLANGE IST_FREI
|
|
74
|
+
WENN IST_KNOCHEN
|
|
75
|
+
DANN
|
|
76
|
+
NIMM
|
|
77
|
+
ENDE
|
|
78
|
+
|
|
79
|
+
LAUF
|
|
80
|
+
ENDE
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## ๐ Erweiterung
|
|
86
|
+
|
|
87
|
+
๐ Was passiert am Ende der Strecke?
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
# ๐ Projekt 3 โ Drehe dich frei
|
|
92
|
+
|
|
93
|
+
## ๐ก Aufgabe
|
|
94
|
+
|
|
95
|
+
Wenn Lenny nicht weiterkommt, soll er sich drehen.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## ๐งพ Lรถsung
|
|
100
|
+
|
|
101
|
+
```lny
|
|
102
|
+
SOLANGE WAHR
|
|
103
|
+
WENN IST_FREI
|
|
104
|
+
DANN
|
|
105
|
+
LAUF
|
|
106
|
+
SONST
|
|
107
|
+
DREH_LINKS
|
|
108
|
+
ENDE
|
|
109
|
+
ENDE
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## โ ๏ธ Hinweis
|
|
115
|
+
|
|
116
|
+
๐ Das ist eine Endlosschleife!
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
# ๐ข Projekt 4 โ Zรคhlen
|
|
121
|
+
|
|
122
|
+
## ๐ก Aufgabe
|
|
123
|
+
|
|
124
|
+
Lenny zรคhlt von 1 bis 5.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## ๐งพ Lรถsung
|
|
129
|
+
|
|
130
|
+
```lny
|
|
131
|
+
VAR x
|
|
132
|
+
SETZE x << 1
|
|
133
|
+
|
|
134
|
+
SOLANGE x <= 5
|
|
135
|
+
SCHREIB x
|
|
136
|
+
SETZE x << x + 1
|
|
137
|
+
ENDE
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
# ๐๏ธ Projekt 5 โ Liste ausgeben
|
|
143
|
+
|
|
144
|
+
## ๐ก Aufgabe
|
|
145
|
+
|
|
146
|
+
Gib alle Namen aus.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## ๐งพ Lรถsung
|
|
151
|
+
|
|
152
|
+
```lny
|
|
153
|
+
FUER name IN ["Lenny", "Bello", "Mila"]
|
|
154
|
+
SCHREIB name
|
|
155
|
+
ENDE
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
# ๐ง Projekt 6 โ Eigene Prozedur
|
|
161
|
+
|
|
162
|
+
## ๐ก Aufgabe
|
|
163
|
+
|
|
164
|
+
Baue eine eigene Bewegung.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## ๐งพ Lรถsung
|
|
169
|
+
|
|
170
|
+
```lny
|
|
171
|
+
PROZEDUR sprungVor
|
|
172
|
+
SPRING
|
|
173
|
+
LAUF
|
|
174
|
+
ENDE
|
|
175
|
+
|
|
176
|
+
sprungVor
|
|
177
|
+
sprungVor
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
# ๐ Abschluss
|
|
183
|
+
|
|
184
|
+
Du kannst jetzt:
|
|
185
|
+
|
|
186
|
+
- Programme schreiben
|
|
187
|
+
- Probleme lรถsen
|
|
188
|
+
- eigene Ideen umsetzen
|
|
189
|
+
|
|
190
|
+
๐ Du bist jetzt Programmierer ๐
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
# ๐ Bonus-Ideen
|
|
195
|
+
|
|
196
|
+
- Labyrinth lรถsen
|
|
197
|
+
- Knochen sammeln mit Punkten
|
|
198
|
+
- Wettrennen zwischen zwei Lennys
|
|
199
|
+
|
|
200
|
+
๐ถ Viel Spaร beim Programmieren!
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# ๐งฉ Kapitel 9 โ Lenny im Labyrinth
|
|
2
|
+
|
|
3
|
+
## ๐ก Ziel
|
|
4
|
+
|
|
5
|
+
In diesem Kapitel hilft du Lenny, ein Labyrinth zu lรถsen.
|
|
6
|
+
|
|
7
|
+
๐ Du kombinierst:
|
|
8
|
+
|
|
9
|
+
- Entscheidungen
|
|
10
|
+
- Wiederholungen
|
|
11
|
+
- Bewegung
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ๐ฉ Das Labyrinth
|
|
16
|
+
|
|
17
|
+
Stell dir eine Welt wie diese vor:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
[ ] [ ] [X] [ ]
|
|
21
|
+
[L] [ ] [X] [K]
|
|
22
|
+
[ ] [ ] [ ] [ ]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- [L] โ Lenny
|
|
26
|
+
- [K] โ Knochen (Ziel)
|
|
27
|
+
- [x] โ Hindernis
|
|
28
|
+
|
|
29
|
+
๐ Lenny muss den Weg finden!
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## ๐ง Strategie
|
|
34
|
+
|
|
35
|
+
Eine einfache Strategie:
|
|
36
|
+
|
|
37
|
+
๐ Wenn frei โ laufen
|
|
38
|
+
๐ Wenn blockiert โ drehen
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## ๐งพ Erstes Labyrinth-Programm
|
|
43
|
+
|
|
44
|
+
```lny
|
|
45
|
+
SOLANGE WAHR
|
|
46
|
+
WENN IST_FREI
|
|
47
|
+
DANN
|
|
48
|
+
LAUF
|
|
49
|
+
SONST
|
|
50
|
+
DREH_LINKS
|
|
51
|
+
ENDE
|
|
52
|
+
ENDE
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## โ ๏ธ Problem
|
|
58
|
+
|
|
59
|
+
๐ Dieses Programm lรคuft endlos!
|
|
60
|
+
|
|
61
|
+
Warum?
|
|
62
|
+
|
|
63
|
+
๐ Es gibt kein Ziel.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## ๐ฏ Ziel einbauen
|
|
68
|
+
|
|
69
|
+
Jetzt stoppen wir, wenn Lenny einen Knochen sieht:
|
|
70
|
+
|
|
71
|
+
```lny
|
|
72
|
+
SOLANGE NOT IST_KNOCHEN
|
|
73
|
+
WENN IST_FREI
|
|
74
|
+
DANN
|
|
75
|
+
LAUF
|
|
76
|
+
SONST
|
|
77
|
+
DREH_LINKS
|
|
78
|
+
ENDE
|
|
79
|
+
ENDE
|
|
80
|
+
|
|
81
|
+
NIMM
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
๐ Lenny stoppt beim Knochen und nimmt ihn.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## ๐ Verbesserung
|
|
89
|
+
|
|
90
|
+
Was passiert, wenn Lenny im Kreis lรคuft?
|
|
91
|
+
|
|
92
|
+
๐ Das kann passieren!
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## ๐ง Bessere Strategie
|
|
97
|
+
|
|
98
|
+
โImmer links entlangโ
|
|
99
|
+
|
|
100
|
+
```lny
|
|
101
|
+
SOLANGE NOT IST_KNOCHEN
|
|
102
|
+
DREH_LINKS
|
|
103
|
+
|
|
104
|
+
WENN IST_FREI
|
|
105
|
+
DANN
|
|
106
|
+
LAUF
|
|
107
|
+
SONST
|
|
108
|
+
DREH_LINKS
|
|
109
|
+
DREH_LINKS
|
|
110
|
+
DREH_LINKS
|
|
111
|
+
WENN IST_FREI
|
|
112
|
+
DANN
|
|
113
|
+
LAUF
|
|
114
|
+
ENDE
|
|
115
|
+
ENDE
|
|
116
|
+
ENDE
|
|
117
|
+
|
|
118
|
+
NIMM
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## ๐ฏ Aufgabe 1
|
|
124
|
+
|
|
125
|
+
Beschreibe:
|
|
126
|
+
|
|
127
|
+
๐ Was macht dieses Programm?
|
|
128
|
+
|
|
129
|
+
```lny
|
|
130
|
+
SOLANGE IST_FREI
|
|
131
|
+
LAUF
|
|
132
|
+
ENDE
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## ๐ฏ Aufgabe 2
|
|
138
|
+
|
|
139
|
+
Schreibe ein Programm:
|
|
140
|
+
|
|
141
|
+
๐ Lenny soll:
|
|
142
|
+
|
|
143
|
+
- laufen
|
|
144
|
+
- bei Hindernis drehen
|
|
145
|
+
- Knochen aufnehmen
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## ๐ฏ Aufgabe 3 (Bonus)
|
|
150
|
+
|
|
151
|
+
Erweitere das Programm:
|
|
152
|
+
|
|
153
|
+
๐ Lenny soll ALLE Knochen einsammeln
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## ๐ Bonus-Ideen
|
|
158
|
+
|
|
159
|
+
- Zeit stoppen โฑ๏ธ
|
|
160
|
+
- Schritte zรคhlen ๐
|
|
161
|
+
- kรผrzesten Weg finden ๐ง
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## ๐ Abschluss
|
|
166
|
+
|
|
167
|
+
Du hast jetzt:
|
|
168
|
+
|
|
169
|
+
- echte Probleme gelรถst
|
|
170
|
+
- Strategien entwickelt
|
|
171
|
+
- Programme verbessert
|
|
172
|
+
|
|
173
|
+
๐ Genau das ist Programmieren!
|
|
174
|
+
|
|
175
|
+
๐ถ Lenny ist jetzt ein echter Labyrinth-Profi โ dank dir!
|