Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#1

Paint Parser - Kleines Zeichenprogramm mit Scriptsprache

  Alt 21. Dez 2006, 13:07
Hallo Leute

Ich habe ein Programm geschrieben, welches sich mit dem Prinzip der Turtle-Grafik befasst, dazu habe ich eine kleine Scriptsprache mit 7 Befehlen entwickelt

Anleitung:

Jede Zeile entspricht einem Befehl, Zeilen, die mit keiner der Folgenden Anweisungen beginnen werden ignoriert,
Leerzeilen werden ignoriert. Groß- und Kleinschreibung wird ignoriert.
Es werden immer nur die ersten beiden Worte einer Zeile interpretiert, das heißt

Code:
<Befehl> <Wert>
bedeutet das Gleiche wie
Code:
<Befehl> <Wert> Irgendwas
Die Anzahl der Leerzeichen ist ebenfalls unbedeutend:
Code:
<Befehl> <Wert>
bedeutet das Gleiche wie
Code:
     <Befehl>         <Wert>    Irgendwas
Die Befehle:

Code:
maydraw true
maydraw false
Sagt, ob der Stift auf der Zeichenfäche ist oder nicht, es sind nur die Werte 'true' und 'false' erlaubt
Code:
reset true
reset
Setzt den Stift zurück auf die Mitte des Bildes und richtet ihn wieder nach oben aus, wird der Parameter 'true' übergeben, dann wird außerdem die Zeichenfläche gelöscht, alle anderen Parameter, sowie keiner, bewirken nur das zurücksetzen des Stifts.
Code:
go 50
goback 50
Bewegt den Stift um 50 Pixel nach vorne, bzw um 50 Pixel nach hinten, es sind alle Gleitkommawerte erlaubt, aber es muss ein Wert angegeben werden. ("go -50" = "goback 50")
Code:
rotateL 45
rotateR 45
Dreht die Zeichenrichtung um 45° nach links, bzw nach rechts, es sind alle ganzzahligen Werte erlaubt, aber es muss ein Wert angegeben werden. ("rotatel 45" = "rotateR -45")
Code:
draw
Zeichnet das alles was gezeichnet wurde auf das Bild, es werden keine Parameter benötigt

Was noch fehlt:

Eine art Schleifenanweisung, mit der man das untere Beispiel besser machen kann.

Beispiel:

Code:
reset true
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
draw
Erzeugt ein gleichseitiges Achteck mit der Seitenlänge 20.

Ich würde mich über Kritik, Verbesserungsvorschläge, Bug-Reports freuen...

Bis dahin

Richard


Neue Version!

3 Neue Befehle hinzugefügt

Code:
color
oder
Code:
color r
ändert die Farbe in einen Zufallswert ('color r' verwenden, wenn noch ein Kommentar in der Zeile steht, da sonst das erste Wort des Kommentars als Wert interpretiert wird)
Code:
color 255,0,0
ändert die Farbe in den den RGB-Wert "255 0 0", also rot. Es dürfen keine Leerzeichen zwischen den Werten sein.

Code:
neck
zeichnet ein N-Eck mit den Parametern in den Spin-Edits

Code:
ybaum
zeichnet den Y-Baum mit den Parametern in den Spin-Edits

Das Speichern und Laden von Scripten, sowie das Speichern des Bildes ist jetzt möglich!
Miniaturansicht angehängter Grafiken
screenie_258.jpg  
Angehängte Dateien
Dateityp: zip paint_parser_186.zip (963,4 KB, 37x aufgerufen)
Richard Mahr
  Mit Zitat antworten Zitat