Turtel-Grafik-Interpreter
Ein Projekt by Friedrich Chasin, Christopher Henkel und Timo Puth
Der Turtle-Grafik Interpreter soll Befehle (als Teil einer vordefinierten Sprache), die in Form eines Queltextes vom Benutzer eingegeben werden, in eine Grafik umwandeln.
Inhaltsverzeichnis
Anregungen
KTurtle ist ein kleines nettes Programm, welches jedoch nur unter KDE, sprich Linux läuft.Schaut euch mal auf der Homepage [1] die Screenshots an.
Hier der Quellcode von KTurtle in C++.... als Anregung für die Klassen Datei:Kturtle src.zip
Was soll das Programm können ?
Wichtig
- Befehle verarbeiten (über Interpreter)
- Einsetzpunkt(Koordinaten)
- hoch,runter,rechts,links (Länge)
- Quadrat zeichnen (Seitenlänge)
- Ellipse zeichnen (Radius1, Radius2)
- u.v.m.
- Über TColorTurtle auf eine Canvas-Fläche zeichnen.
Weniger wichtig
- Chronik der Befehle
- Zufällige Befehle
Was benötigt man für den Interpreter ?
- TColorTurtle (12/I OOP) click
GUI - Die Oberfläche
Menü-Elemente | Beschreibung |
---|---|
Neu, Öffnen, Schließen, Speichern, Speichern unter..., Drucken und Schließen. | Standardelemente des Menüpunktes Datei |
Ausschneiden, Kopieren, Einfügen, Finden..., Ersetzen..., Geh zu... . | Standardelemente des Menüpunktes Bearbeiten |
Nebeneinander, Übereinander. | Im Menüpunkt Fenster können die Zeichenfläche und das Codefenster in der gewünschten Art angeordnet werden. |
Inahalt, Über Turtle-Grafik-Interpreter. | Standardelemente des Menüpunktes Hilfe |
Die Zeichenfläche und der Code-Editor sind von der Größe des Hauptfensters abhängig.
Die Abstände zu den Rändern sowie zur Toolbar bzw. zur Statusleiste des Programmes sind konstant.
Das Fenster hat damit in jeder Größe das gleiche Verhältnis, was eine gewisse Ordnung (und vielleicht auch Ästhetik) darstellt.
Sprach-Elemente
Eingabe-Zeichen | Beschreibung |
---|---|
program {Befehle} | Umschließt alle Befehle. Mit der letzten } wird der Code als beendet angesehen. |
repeat x {Befehle} | Diese Befehle werden x mal wiederholt |
turn α | α - Drehung um α Grad. |
draw x | x - Länge der Strecke in Pixel. |
jump x,y | x,y - Koordinaten des Zielpunktes. |
fill | Flächen mit Farbe füllen. |
color S | Farbe S wählen. |
ellipse r1,r2 | Ellipse mit r1 (horizontaler Radius) und r2 (vertikaler Radius ) |
rect x,y | Rechteck , was durch zwei punkte beschrieben ist. (P aktuell und P(x,y)) |
angle α | x - der Winkel |
size x | x - Dicke des Pinsels |
Syntax-Zeichen | Beschreibung |
---|---|
; | Gibt das Ende von einem der oben genannten Befehle an. |
{ | Beginn-Zeichen eines Programms oder einer repeat-Anweisung. |
} | End-Zeichen eines Programms oder einer repeat-Anweisung.( in Verbindung mit { ) |
Das Syntaxdiagramm
- Die erste Version wurde von Herrn Höpping hinsichtlich der Qualität begutachtet und für den Gebrauch freigegeben.
- fill Anweisung wurde eingeführt, um Flächen mit Farbe füllen zu können. Die Realisierung steht in "Diskussion".
.
Der Scanner
Hier zunächst der Zustandsgraph für den Scanner.
Token-Liste
Befehle | Tokens | Befehle | Tokens | Befehle | Tokens |
---|---|---|---|---|---|
"program" | p | "repeat" | r | "turn " | t |
"size " | s | "draw " | d | "jump " | j |
"move " | m | "fill" | f | "pcolor " | c |
"ellipse " | e | "rect " | a | "angle " | i |
"red" | u | "white" | w | "black" | b |
"blue" | k | "gold" | g | "green" | h |
"bcolor " | z | "drawto " | l | ||
"{" | { | "}" | } | "0".."9" | 0..9 |
";" | ; | "," | , | "_" | "" |
Changelog
- Changelog v2.2:
- Befehel "rect r1,r2" ergänzt. Das entsprechende Token dafür ist "a".
- Changelog v2.3:
- Bezeichnung 'rect ' wurde im Grafen ergänzt.
- Befehl "angle " ergänzt. Das entsprechende Token dafür ist "i".
- Changelog v2.5
- Befehl "move " ergänzt. Token dafür ist "m".
- Changelog v2.6
- Befehl "color " wurde durch "pcolor " und "bcolor " ersetzt. Tokens dafür sind "c" und "z".
- Befehl "drawto " wurde ergänzt. Das Token dafür ist "l".
Aktuelle Scanner Version
http://home.arcor.de/operationkroete/Scanner/CurrentScanner/
Der Parser
Status: 02.01.2007 Implementiert. (siehe Graphen dazu)
.
Der Interpreter
Status: implementiert.
Aktueller Stand
- TGI ist funktionsfähig :)
FTP-Server
- Alle Ergebnisse werden auf einem Server gespeichert.
- Jede Detei muss mit einem Datum versehen werden.
Zugangsdaten
- URL: home.arcor.de
- PORT: 21
- USER: operationkroete
- PW: *****