-
Notifications
You must be signed in to change notification settings - Fork 0
/
DuckScript Dokumentation.txt
90 lines (62 loc) · 3.94 KB
/
DuckScript Dokumentation.txt
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
© DuckCoder 2024 - ALPHA Release v0.13.6
========================================
Bitte beachten Sie, dass DuckScript bis jetzt nur sehr simple Logik ermöglicht, da bis jetzt auch nur grundlegende Funktionen umgesetzt wurden.
DuckScript hat kein gesondertes Dateiformat, sondern basiert auf Textdokumenten (.txt).
Ein Skript kann also in einem simplen Texteditor geschrieben werden.
Es empfiehlt sich aber Notepad++ zu benutzen, da dies das Programmieren deutlich erleichtert.
Im mitgelieferten Ordner "Beispielskripte" sind beispielhafte Skripte enthalten.
WICHTIG:
- Ein ; am Ende der Zeile ist optional, aber trotzdem zu empfehlen.
- Leere Zeilen werden ignoriert.
- Eingeklammerter Text wird ignoriert. Dies kann als Label für Codeabschnitte benutzt werden. Z.B.: (Schleifenanfang)
- Text, der mit // beginnt, wird ignoriert. Dies kann als langer Kommentar für Codeabschnitte genutzt werden. Z.B.: // Folgender Code lässt die Ente vorwärtslaufen
Es wird empfohlen, das Skript immer mit dem "beenden" Befehl zu beenden.
Register sind Speicherzellen, welche jeweils eine Ganzzahl (auch negative) enthalten.
Es gibt insgesamt 20 Register, welche von 1 bis 20 durchnummeriert sind.
Standardmäßig ist jeder Wert von jedem Register auf 0 gesetzt.
Befehle, welche die Ente beeinflussen werden BLAU hervorgehoben.
Befehle, welche den Befehlszeiger beeinflussen, werden ROT hervorgehoben.
Befehle, welche die Register beeinflussen, werden GRÜN hervorgehoben.
Attribute werden MAGENTA hervorgehoben (Außer register 1-20, diese werden ebenfalls GRÜN hervorgehoben).
Im Folgenden werden nun alle Befehle und Attribute erläutert.
Parameter mit [] Klammern sind *pflicht*.
Parameter mit () Klammern sind *optional*.
--- ATTRIBUTE ---
- istrechtswand
<Boolean> True/False Rechts von Ente befindet sich eine Wand
- istlinkswand
<Boolean> True/False Links von Ente befindet sich eine Wand
- istobenwand
<Boolean> True/False Oberhalb von Ente befindet sich eine Wand
- istuntenwand
<Boolean> True/False Unterhalb von Ente befindet sich eine Wand
- register:[1-20]
<Integer> Ganzzahl innerhalb des angegeben Registers
--- BEFEHLE ---
- vorwärtslaufen (register:[1-20] ODER Integer)
Ente läuft einen Schritt nach vorne ODER läuft x Schritte nach vorne wenn Register oder Ganzzahl angegeben
- rückwärtslaufen (register:[1-20] ODER Integer)
Ente läuft einen Schritt nach hinten ODER läuft x Schritte nach hinten wenn Register oder Ganzzahl angegeben
- hochlaufen (register:[1-20] ODER Integer)
Ente läuft einen Schritt nach oben ODER läuft x Schritte nach oben wenn Register oder Ganzzahl angegeben
- runterlaufen (register:[1-20] ODER Integer)
Ente läuft einen Schritt nach unten ODER läuft x Schritte nach unten wenn Register oder Ganzzahl angegeben
- teleportieren [register:[1-20] ODER Integer] [register:[1-20] ODER Integer)
Teleportiert Ente an angegebene x und y Koordinate
- beenden
Beendet das Skript
- springen [Integer]
Springt in die angegebene Zeile
- springewenn [Boolean-Attribut] [Integer]
Springt in die angegebene Zeile, sofern das Boolean-Attribut True ist
- springenichtwenn [Boolean-Attribut] [Integer]
Springt in die angegebene Zeile, sofern das Boolean-Attribut False ist
- registersetzen [register:[1-20]] [Integer]
Setzt den Wert des angegeben Registers auf die angegebene Integer Zahl
- registererhöhen [register:[1-20]] [Integer ODER register:[1-20]]
Erhöht den Wert des angegeben Registers um den angegebenen Integer ODER um den Wert des angegebenen Registers
- registerverringern [register:[1-20]] [Integer ODER register:[1-20]]
Verringert den Wert des angegeben Registers um den angegebenen Integer ODER um den Wert des angegebenen Registers
- springewennregister [register:[1-20]] [Operant] [Integer ODER register:1-20]] [Integer]
Springt in den angegeben Zeilenindex, wenn der Wert aus dem ersten angegeben Register verglichen durch den angegeben Operanten mit dem zweiten angegeben Register True liefert.
Zurzeit gibt es folgende Operanten: "<", "<=", "==", ">", ">="