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.
Files changed (130) hide show
  1. package/.vscode/launch.json +19 -0
  2. package/README.md +96 -0
  3. package/book_ALT/LennySmartIcon1.png +0 -0
  4. package/book_ALT/chapter01.md +141 -0
  5. package/book_ALT/chapter02.md +48 -0
  6. package/book_ALT/chapter03.md +28 -0
  7. package/book_ALT/chapter04.md +19 -0
  8. package/book_ALT/chapter05.md +21 -0
  9. package/book_ALT/chapter06.md +167 -0
  10. package/book_ALT/chapter07.md +232 -0
  11. package/book_ALT/chapter08.md +200 -0
  12. package/book_ALT/chapter09.md +175 -0
  13. package/book_ALT/chapter10.md +196 -0
  14. package/book_ALT/deckblatt.md +60 -0
  15. package/book_ALT/images/Lenny01.png +0 -0
  16. package/book_ALT/images/Lenny02.png +0 -0
  17. package/book_ALT/images/Lenny03.png +0 -0
  18. package/book_ALT/images/Lenny04.png +0 -0
  19. package/book_ALT/images/Lenny05.png +0 -0
  20. package/book_ALT/images/Lenny06.png +0 -0
  21. package/book_ALT/images/Lenny07.png +0 -0
  22. package/book_ALT/images/Lenny08.png +0 -0
  23. package/book_ALT/images/Lenny09.png +0 -0
  24. package/book_ALT/images/Lenny10.png +0 -0
  25. package/book_ALT/images/Lenny11.png +0 -0
  26. package/book_ALT/images/Lenny12.png +0 -0
  27. package/book_ALT/images/Lenny13.png +0 -0
  28. package/book_ALT/images/Lenny14.png +0 -0
  29. package/book_ALT/images/Lenny15.png +0 -0
  30. package/book_ALT/lehrerheft.md +255 -0
  31. package/dist/ast/ast.d.ts +126 -0
  32. package/dist/ast/ast.d.ts.map +1 -0
  33. package/dist/ast/ast.js +3 -0
  34. package/dist/ast/ast.js.map +1 -0
  35. package/dist/browser.d.ts +2 -0
  36. package/dist/browser.d.ts.map +1 -0
  37. package/dist/browser.js +1067 -0
  38. package/dist/browser.js.map +1 -0
  39. package/dist/examples.d.ts +11 -0
  40. package/dist/examples.d.ts.map +1 -0
  41. package/dist/examples.js +65 -0
  42. package/dist/examples.js.map +1 -0
  43. package/dist/i18n/i18n.d.ts +18 -0
  44. package/dist/i18n/i18n.d.ts.map +1 -0
  45. package/dist/i18n/i18n.js +505 -0
  46. package/dist/i18n/i18n.js.map +1 -0
  47. package/dist/index.d.ts +7 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +31 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/interpreter/interpreter.d.ts +40 -0
  52. package/dist/interpreter/interpreter.d.ts.map +1 -0
  53. package/dist/interpreter/interpreter.js +415 -0
  54. package/dist/interpreter/interpreter.js.map +1 -0
  55. package/dist/lexer/lexer.d.ts +87 -0
  56. package/dist/lexer/lexer.d.ts.map +1 -0
  57. package/dist/lexer/lexer.js +425 -0
  58. package/dist/lexer/lexer.js.map +1 -0
  59. package/dist/lny-config.yml +6 -0
  60. package/dist/parser/parser.d.ts +50 -0
  61. package/dist/parser/parser.d.ts.map +1 -0
  62. package/dist/parser/parser.js +605 -0
  63. package/dist/parser/parser.js.map +1 -0
  64. package/dist/repl.d.ts +3 -0
  65. package/dist/repl.d.ts.map +1 -0
  66. package/dist/repl.js +472 -0
  67. package/dist/repl.js.map +1 -0
  68. package/dist/run-file.d.ts +2 -0
  69. package/dist/run-file.d.ts.map +1 -0
  70. package/dist/run-file.js +140 -0
  71. package/dist/run-file.js.map +1 -0
  72. package/dist/test.d.ts +2 -0
  73. package/dist/test.d.ts.map +1 -0
  74. package/dist/test.js +72 -0
  75. package/dist/test.js.map +1 -0
  76. package/dist/world/world.d.ts +103 -0
  77. package/dist/world/world.d.ts.map +1 -0
  78. package/dist/world/world.js +416 -0
  79. package/dist/world/world.js.map +1 -0
  80. package/docs/About.md +19 -0
  81. package/docs/INTERPRETER.md +240 -0
  82. package/docs/README.md +68 -0
  83. package/docs/i18n/README.md +20 -0
  84. package/docs/lny-referenz.md +161 -0
  85. package/docs/lny_ueberblick.md +33 -0
  86. package/examples/00-demo.lny +3 -0
  87. package/examples/01-variable-assignment.lny +4 -0
  88. package/examples/02-conditional.lny +7 -0
  89. package/examples/03-while-loop.lny +6 -0
  90. package/examples/04-for-loop.lny +5 -0
  91. package/examples/05-lenny-movement.lny +10 -0
  92. package/examples/06-procedure.lny +6 -0
  93. package/examples/fuer-range-1.lny +4 -0
  94. package/examples/fuer-range-2.lny +6 -0
  95. package/examples/fuer-range-3.lny +6 -0
  96. package/examples/fuer-range-4.lny +4 -0
  97. package/examples/fuer-range-5.lny +6 -0
  98. package/examples/solange-verschachtelt.lny +12 -0
  99. package/favicon.ico +0 -0
  100. package/index.html +108 -0
  101. package/jest.config.js +7 -0
  102. package/lny-config.yml +6 -0
  103. package/package.json +37 -0
  104. package/settings.json +4 -0
  105. package/src/ast/ast.ts +182 -0
  106. package/src/browser.ts +1274 -0
  107. package/src/examples.ts +68 -0
  108. package/src/i18n/i18n.ts +537 -0
  109. package/src/index.ts +6 -0
  110. package/src/interpreter/interpreter.ts +453 -0
  111. package/src/lexer/lexer.ts +493 -0
  112. package/src/parser/parser.ts +711 -0
  113. package/src/repl.ts +496 -0
  114. package/src/test.ts +71 -0
  115. package/src/world/world.ts +512 -0
  116. package/style.css +315 -0
  117. package/test1.lny +2 -0
  118. package/tests/interpreter.test.ts +42 -0
  119. package/tests/parser.test.ts +18 -0
  120. package/tsconfig.json +19 -0
  121. package/vercel.json +7 -0
  122. package/vscode-lny/.vscode/launch.json +13 -0
  123. package/vscode-lny/.vscodeignore +3 -0
  124. package/vscode-lny/README.md +83 -0
  125. package/vscode-lny/language-configuration.json +19 -0
  126. package/vscode-lny/license.txt +21 -0
  127. package/vscode-lny/lny-language-0.1.0.vsix +0 -0
  128. package/vscode-lny/package.json +41 -0
  129. package/vscode-lny/snippets/lny.json +136 -0
  130. 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!