Autorské riešenie Každý z nás vie nakresliť špirálu ceruzkou na papier. V prostredí Imagine je to veľmi podobné. Je potrebné si uvedomiť, že každá hrana špirály je od predchádzajúcej o niečo dlhšia. Napríklad o 10. To znamená, že prvá hrana má dĺžku 10, druhá 20, tretia 30 atď. Dĺžku hrany, ktorú
korytnačka kreslí, si môžeme uložiť do premennej dlzka. Po nakreslení
jednej hrany hodnotu premennej zvýšime o 10. urob "dlzka 10 urob "dlzka :dlzka+10 .... urob "dlzka :dlzka+10 Tieto príkazy použijeme pri
vykreslení špirály. Kreslíme "hranatú" špirálu, pri ktorej použijeme takúto
postupnosť príkazov: do :dlzka vl 90 urob "dlzka : dlzka +10 V zadaní úlohy nie je presne povedané,
koľko hrán má táto špirála mať. Kreslenie hrany špirály budeme
opakovať v cykle. Keďže pozadie sa stále mení, nevieme presne koľko hrán bude špirála mať. Kreslenie
hrany budeme opakovať dovtedy, pokiaľ sa špirála
vojde do nakresleného útvaru. To znamená, že korytnačka bude na bielom
pozadí. Ak korytnačka vkročí na fialovú farbu ("modra11), tak sa
vykresľovanie ukončí. Prvé riešenie by teda mohlo vyzerať takto: viem spirala
urob "dlzka 10 kym [farbaBodu<>"modrá11] [ do :dlzka vl 90 urob "dlzka :dlzka+10 ] koniec Ak by sme túto procedúru prepísali do prostredia Imagine, veľmi rýchlo by sme zistili, že nefunguje správne. Ak procedúru spustíme, sama od seba neskončí. Musíme ju ukončiť my. Dôvod je jednoduchý - ak korytnačka nakreslí čiaru, tak na nej zostane stáť. Farba čiary je čierna. Preto podmienka farbaBodu<>"modrá11 by bola vždy splnená. Preto naše riešenie
vylepšíme tak, že korytnačka sa pôjde pozrieť, či sa hrana dá nakresliť.
Zdvihne pero, prejde o dĺžku hrany dopredu a zistí, na akej farbe stojí. Ak
je splnená podmienka, vráti sa späť, položí pero dole a hranu nakreslí.
Ak stojí na modrej, ostane stáť, podmienka v cykle nebude platiť a kreslenie
špirály sa ukončí. viem spirala
nechFp "cierna urob "dlzka 1 pd kym [farbaBodu<>"modrá11] [ph do :dlzka ak farbaBodu<>"modrá11 [vz :dlzka pd do :dlzka vl 90 urob "dlzka :dlzka+10 ] ] koniec
Vaše zaujímavé riešenia Najlepšie riešenie tejto úlohy nám poslal tím Expert MoonLight.
Najčastejšie chyby Najviac chýb ste spravili v tom, že posledná hrana špirály zasahuje do modrej farby pozadia. Skončili ste s vykresľovaním vtedy, keď ste sa dostali na modrú farbu. Správne ste však s vykresľovaním mali skončiť už pri predchádzajúcej hrane. | ||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |