Autorské riešenie
[stiahni imp]                                       

  • Počet riešiteľov: 14 / 17 = 82 %                       

  • Úspešnosť riešenia: 3.01 / 4 =  77 %                   

Úlohou bolo vytvoriť program, ktorý vykreslí náramok s požadovaným vzorom. Ukážkové náramky boli takéto:

naramky

naramky

Keď sa na tieto náramky na obrázkoch lepšie pozrieme a zamyslíme, objavíme, že sa na nich opakuje nasledujúci vzor:

naramky

Keď sa pozrieme lepšie na tento opakujúci sa vzor, zistíme, že aj v tomto vzore sa niečo opakuje. Opakuje sa v ňom 4krát nasledujúci menší vzor:

naramky

Keďže sme už objavili opakujúce sa vzory v obrázkoch, môžeme vytvoriť program, ktorý takýto náramok vykreslí. Pomôžeme si tým, že si vytvoríme procedúru, ktorá nám vykreslí štvorec vyplnený zadanou farbou so zadanou dĺžkou strany. Na to nám slúži procedúra farebny_stvorec. Na začiatku si zapamätáme pôvodný stav, teda, aká bola pôvodná farba pera, pôvodná farba výplne a či bolo kresliace pero hore alebo dolu.

;Imagine logo

viem farebny_stvorec :velkost_stvorca :farba

  urobTu "povodna_farba_pera farbaPera
  urobTu "povodny_stav_pera pero
  urobTu "povodna_farba_vyplne farbaVýplne

  nechFarbaVyplne :farba
  peroHore
  polygon[
    opakuj 4 [
      ph
      do :velkost_stvorca
      vp 90
    ]
  ]

  nechFarbaPera :povodna_farba_pera
  nechFarbaVýplne :povodna_farba_vyplne
  ak2 :povodny_stav_pera = "pd [pd][ph]

koniec

Keď už vieme vykresliť farebný štvorec, môžeme kresliť menší opakujúci sa vzor, ktorý pozostáva zo 4 farebných štvorcov: 2 modré, 1 červený a 1 biely. Na to nám poslúži procedúra mensi_vzor, ktorá vykreslí menší vzor so zadanou dĺžkou strany jedného farebného štvorca.


;Imagine logo

viem mensi_vzor :velkost_stvorca

  vp 90
  do :velkost_stvorca
  vl 90
  do :velkost_stvorca

  farebny_stvorec :velkost_stvorca "modrá
  vp 90
  farebny_stvorec :velkost_stvorca "červená
  vp 90
  farebny_stvorec :velkost_stvorca "modrá
  vp 90
  farebny_stvorec :velkost_stvorca "biela
  vp 90

  vl 90
  do :velkost_stvorca
  vl 90
  do :velkost_stvorca
  vp 180

koniec

Keď už vieme vykresliť menší opakujúci sa vzor, môžeme kresliť väčší opakujúci sa vzor. Použijeme na to procedúru vacsi_vzor, ktorá vykreslí väčší opakujúci sa vzor so zadanou dĺžkou strany najmenšieho farebného štvorca.


;Imagine logo

viem vacsi_vzor :velkost_stvorca

  opakuj 4 [
    mensi_vzor :velkost_stvorca
    do 2 * :velkost_stvorca
    vp 90
    do 2 * :velkost_stvorca
  ]

koniec

Keď už vieme vykresliť aj väčší opakujúci sa vzor, môžeme vykresliť celý náramok. Na to nám poslúži procedúra vykresli_naramok, ktorá vykreslí náramok s požadovaným opakujúcim sa vzorom so zadaným počtom opakovania sa väčšieho vzoru a so zadanou dĺžkou strany najmenšieho farebného štvorca. Nakoniec ešte vrátime korytnačku na jej pôvodnú pozíciu.

;Imagine logo

viem vykresli_naramok :dlzka :velkost_stvorca

  opakuj :dlzka[
    vacsi_vzor :velkost_stvorca
    vp 90
    do 4 * :velkost_stvorca
    vl 90
  ]

  vl 90
  do 4 * :velkost_stvorca * :dlzka
  vp 90

koniec

 

Vaše zaujímavé riešenia a najčastejšie chyby

Najčastejšou chybou bolo nevrátenie korytnačky do pôvodného stavu a používanie globálnych premenných, keď to nebolo nevyhnutné.

Nesprávvne bolo používanie príkazov domov, zmaž a znovu na začiatku pocedúry, ktorá mala vykresliť náramok. Takýmto použitým spomínaných príkazov totiž nemožníte použiť túto procedúru na vykreslenie náramku na ľubovoľnom mieste kresliacej plochy, či do ľubovoľného, už predtým nakresleného, obrázka.