Virágos fa
Készítsd el a fát rajzoló eljárást fa(n,h), ahol n a szintek száma, a h hossz pedig a fa törzsének hossza! A fa fő törzse sötétbarna, az egyes ágak közepéből kinövő mellékágak sötétzöldek; a fő ágak végén piros virágok, a mellékágak végén és ágai között világoszöld levelek nőnek. (A felhasználandó színek: barna – „brown”, zöld – „green”, világos zöld – „lightgreen”, piros – „red”.)
fa(1,100)
fa(2,100)
fa(3,100)
fa(4,100)
Hivatalos megoldás (HTML)
Készítsd el a fát rajzoló eljárást fa(n,h), ahol n a szintek száma, a h hossz pedig a fa törzsének hossza! A fa fő törzse sötétbarna, az egyes ágak közepéből kinövő mellékágak sötétzöldek; a fő ágak végén piros virágok, a mellékágak végén és ágai között világoszöld levelek nőnek. (A felhasználandó színek: barna – „brown”, zöld – „green”, világos zöld – „lightgreen”, piros – „red”.)
fa(1,100) | fa(2,100) | fa(3,100) | fa(4,100) |
A fa törzse vastagsága az aktuális szintszám. AS felső szint egy technikai eljárás, ezzel adhatunk az igazi rajzolónak plusz paramétert. A leveles fa mindenhol kétfelé ágazik, az ág végén körívekkel rajzolt zöld levelekkel. A virágos fa háromfelé ágazik, de belőle újabb leveles fák nőnek ki, és a végén vannak a virágok
eljárás virágos :n :h
virágosfa :n :h :n
vége
eljárás virágosfa :n :h :m
előre :h/2 tollszín! sötétzöld balra 30 leveles :n-1 :h*2/6
jobbra 60 leveles :n-1 :h*2/6 balra 30 tollszín! barna
előre :h/2
hak :n>1 [balra 30 virágosfa :n-1 :h*2/3 :m jobbra 30
virágosfa :n-1 :h*2/3 :m jobbra 30
virágosfa :n-1 :h*2/3 :m balra 30]
[ha :m>1 [virág :h :m] ]
tollvastagság! :n hátra :h tollvastagság! 1
vége
eljárás leveles :n :h
ha :n>0 [előre :h]
ha :n=1 [tollszín! „zöld jobbra 30
ismétlés 2 [ív 60 :h balra 120]
balra 30 tollszín! sötétzöld]
ha :n>1 [balra 30 leveles :n-1 :h*2/3 jobbra 45
tollszín! „zöld
ismétlés 2 [ív 30 :h balra 150]
jobbra 15 tollszín! sötétzöld
leveles :n-1 :h*2/3 balra 30]
ha :n>0 [tollvastagság! :n hátra :h tollvastagság! 1]
vége
eljárás virág :h :m
tollszín! „piros
ismétlés :m/2 [balív :h balra 60/:m]
jobbra 30
ismétlés :m/2 [jobbív :h jobbra 60/:m]
balra 30 tollszín! barna
vége
Két, nem létező szín névre írunk egy-egy függvényt.
eljárás barna
eredmény [120 60 0]
vége
eljárás sötétzöld
eredmény [0 128 0]
vége
A. fa 1 100 van; barma 1+1 pont
B. fa 2 100 főága háromfelé ágazik; végén van 2 virág; van két mellékág; sötétzöld; jó helyen; jó méretben; végükön levelek; világoszöld levelekkel 1+1+1+1+1+1+1+1 pont
C. fa 3 100 jó szerkezetű, az ágak végén 4 virág van; a mellékágak elágazásainál is van levél; kisebb az ágak végén levőnél; főág vastagság jó; mellékág vastagság jó 2+2+2+1+1+1 pont
D. A virág piros; balra és jobbra forduló ív; a végén nagyobb pont; a két szélső virág mindig azonos szöget zár be 1+3+2+2 pont
E. fa 4 80 jó 4 pont
F. fa 6 60 jó 4 pont