TUTORIAL
Eine Warteschlange | |
Unsere Warteschlange ("First in - first out")
Mit | warteschlange = [] |
Wir definieren "neue" Igelbefehle, die den ursprünglichen Befehl ausführen, aber zusätzlich eine Funktion in der Warteschlange abspeichern Diese werden wir später abrufen. Bei den Drehbefehlen speichern wir jeweils die Drehung in die andere Richtung ab. So können wir später das Spiegelbild der zuerst gezeichneten Figur erhalten. | VOR = (d) ->
vor d
warteschlange.push -> vor d
ZURÜCK = (d) ->
zurück d
warteschlange.push -> zurück d
LINKS = (w) ->
links w
warteschlange.push -> rechts w
RECHTS = (w) ->
rechts w
warteschlange.push -> links w |
Die Funktion | spiegeln = ->
stifthoch()
nachhause()
stiftrunter()
während (f = warteschlange.shift())?
f() |
Hier ein kleines Beispielprogramm. | bildschirmleer()
wiederhole 2, ->
VOR 50
LINKS 60
LINKS 20
wiederhole 5, ->
VOR 30
LINKS 72
LINKS -20
wiederhole 4, ->
VOR 50
LINKS 60
ZURÜCK 200
RECHTS 140
VOR 100 |
Und nun lassen wir das Spiegelbild zeichnen. | stiftfarbe rot
spiegeln() |
Findet Du heraus, wie man das Programm modifizieren kann, um statt der Spiegelung an der senkrechten eine Spiegelung an der waagerechten Mittelgerade zu bekommen? Oder eine Punktspiegelung am Mittelpunkt? | |