to cirkeltjes :straal
if (:straal > 0) [
; Teken de buitenste cirkel
circle :straal
; Teken de rest via recursie
cirkeltjes (:straal – 10)
]
end
to cirkeltjes :straal
if (:straal < 0) [ stop ]
; Teken de buitenste cirkel
circle :straal
; Teken de rest via recursie
cirkeltjes (:straal – 10)
end
Teken concentrische cirkeltjes van een (op)gegeven straal en kleiner.
Commando’s (herhaling)
setxy :x :y
xcor
ycor
seth :hoek
fd :lengte = forward
bk :lengte = back
lt :hoek = left
rt :hoek = right
setfc :kleur = setfloodcolor
setpc :kleur = setpencolor
bitblock :breedte :hoogte
circle :straal
fill for [i :begin :eind] [ ]
for [i :begin :eind :stap] [ ]
if (voorwaarde) [ ]
repeat :aantalkeer [ ]
stop
wait (:tijd)
item :nummer :lijst
print :tekst
ct = cleartext
st = showturtle
ht = hideturtle
pu = penup
pd = pendown
Speciale tekens
De puntkomma ;Alles na een puntkomma tot einde lijnis commentaar en wordt niet uitgevoerd= Om uitleg te geven
De tilde ~Het commando wordt verdergezet op de volgende lijn= Om niet horizontaal te moeten scrollen
De Torens van Hanoi
Mythe:Toren van Brahma (64 blokken)
Als spel op de markt gebracht
in 1863 door prof. Claus(College van Li-Sou-Stian)
pseudoniem vanEdouard Lucas(College van Saint-Louis)
Tekenen
De lijnen (grondvlak en staven)
Een rechthoek
:toren
:laag
:dikte
Verwijderen van een rechthoek
De rechthoek overtekenen in het wit
De lijn (staaf) hertekenen
:toren
:laag
Lijnen
631 pixels Breedte van de lijnen: 5 pixels 290 pixels 208 pixels (–315, 0) (–210, 0) 203 pixels (0, 0)
Lijnen
to lijnen
; Tekent de lijnen
; (zowel het grondvlak als de staven)
; voor de beginsituatie.
setfc :lijn
setxy -315 0
bitblock 631 5
for [i -210 206 208] [
setxy :i 0
bitblock 5 290
]
end
Lijnen
to lijnen
; Tekent de lijnen
; (zowel het grondvlak als de staven)
; voor de beginsituatie.
setpensize [5 5]
setpc :lijn
setxy -313 2
seth 90
pd
fd 626
pu
for [i -208 208 208] [
setxy :i 2
seth 0
pd
fd 285
pu
]
end
setpensize
setpensize [5 5]
setpensize [:dikte :brol]
In MSWLogo wordt pendikte= 1ste argument,2de argument is nutteloos.
In andere Logo-programma’s
Horizontale pendikte = 1ste argument
Verticale pendikte = 2de argument
Rechthoek
(5 + 20 × :dikte) pixels 25 pixels (x, –20 + 28 × :laag)x = –208 als :toren = 1
x = 0 als :toren = 2
x = 208 als :toren = 3 Eventueel met een rand
Eventueel kleur in functie van :dikte
Procedures (of subroutines)
Voeren alleen instructies uit
Kunnen beëindigd worden door stop
Functies met uitvoer (output)
Voeren (eventueel) instructies uit
Geven een antwoord aan oproepende functie door output (beëindigt functie)
Functies met uitvoer
to gemiddelde :x :y ; Geeft als output ; het gemiddelde van de 2 argumenten
output (:x + :y) / 2
end
to oproependefunctie make "gem gemiddelde 40 60 fd gemiddelde 10 :gemend
Functies met uitvoer
to kleur :dikte
; Geeft als output het kleur
; dat hoort bij een blok
; van dikte (:dikte).
make "kleuren [[255 0 0] [255 0 102] ~
[255 0 204] [204 0 255] ~
[102 0 255] [0 0 255] ~
[102 0 255] [204 0 255] ~
[255 0 204] [255 0 102]]
output (item :dikte :kleuren)
end
Set en get
make "toren1 0make "toren2 0make "toren3 0
setaantal :toren :aantalVerandert 1 van de variabelen
getaantal :torenGeeft als output de waarde van 1 van de variabelen
Comments