Turtel-Grafik-Interpreter

Aus Informatik
Wechseln zu: Navigation, Suche

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.

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.

Screenshots hier

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

Syntaxdiagramm für Turtle-Grafik-Interpreter
  • 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.

Zustandsgraph für den Scanner in der Version 2.6

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)

Kellerautomat für den Parser in der Version 1.0









.

Der Interpreter

Status: implementiert.

Aktueller Stand

Screenshot nach der Ausführung eines Programms
  • 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: *****

Aktuelle Version

TGI Project