Autorské riešenie
[stiahni imp : py]

  • Počet riešiteľov: 16 / 16 = 100 %

  • Úspešnosť riešenia: 3.31/4 = 82.8%

Aby sme nakreslili škrabošku, potrebujeme najprv vytvoriť otvor pre jedno oko. Ide o rovnostranný torjuholník, ktorý ma v strede dieru. Keď sa pozrieme lepšie na daný trojuholník, môžeme si ho rozdeliť do ešte menších trojuholníkov, ako je to znázornené na nasledujúcom obrázku.

Jedno oko škrabošky

Preto si na začiatok vytvoríme procedúru/funkciu, ktorá nakreslí rovnostranný trojuholník s dĺžkou strany určenou vstupným parametrom procedúry/funkcie. Keďže potrebujeme mať škrabošku vyfarbenú, tak si nastavíme aj vypĺňanie daného trojuolníka:

;Imagine logo
viem trojuholnik :dlzka
  polygon[
  opakuj 3[
  do :dlzka
  vlavo 120
  ]
  ]
  koniec
def trojuholnik(dlzka):
    k.begin_fill()
    for i in range(3):
        k.forward(dlzka)
        k.left(120)
    k.end_fill()

Hrúbka škrabošky má byť rovnaká okolo celého oka, lebo pozostáva z troch rovnakých pásikov - vzoru. Preto si vytvoríme pomocnú procedúru/funkciu vzor na nakreslenie tohto vzoru. Jeden náš pásik (vzor) bude pozostávať zo siedmich malých rovnostranných trojuholníkov. Tie nakreslíme do radu po dvojiciach a nakoniec pridáme ešte jeden - siedmy trojuolník.

;Imagine logo
viem vzor :hrubka
  opakuj 3[
  trojuholnik :hrubka
  do :hrubka
  vlavo 60
  trojuholnik :hrubka
  vpravo 60
  ]
  trojuholnik :hrubka
  do :hrubka
koniec
def vzor(hrubka):
    for i in range(3):
        trojuholnik(hrubka)
        k.forward(hrubka)
        k.left(60)
        trojuholnik(hrubka)
        k.right(60)
    trojuholnik(hrubka)
    k.forward(hrubka)

Teraz už vieme vytvoriť ľavú časť škrabošky, a to tak, že trikrát zavoláme funkciu vzor, ktorá nám nakreslí 3 rovnako hrubé pásiky. Po každom nakreslení pásika sa otočíme o 120° vľavo, aby sme vytvorili rovnostranný trojuholník.

;Imagine logo
viem lavaCast :hrubka
  opakuj 3[
  vzor :hrubka
  vlavo 120
  ]
koniec
def lavaCast(hrubka):
    for i in range(3):
        vzor(hrubka)
        k.left(120)

Pomocou kódu nachádzajúceho sa vyššie, vieme nakresliť otvor pre jedno oko. Teraz potrebujeme ešte jeden pre druhé oko, teda zavoláme našu procedúru/funkciu lavaCast dvakrát. Raz na nakreslenie jedného otvoru a druhý raz na nakreslenie druhého. A sme hotoví. Máme vytvorénu procedúru/funkciu skraboska, ktorá nám nakreslí škrabošku požadovanej hrúbky.

;Imagine logo
viem skraboska :hrubka
  vpravo 180
  lavaCast :hrubka
  vlavo 60
  do 3*:hrubka
  vlavo 60
  do -:hrubka
  vpravo 60
  lavaCast :hrubka
koniec
def skraboska(hrubka):
    k.speed(10)
    k.right(90)
    lavaCast(hrubka)
    k.left(60)
    k.forward(3*hrubka)
    k.left(60)
    k.forward(-hrubka)
    k.right(60)
    lavaCast(hrubka)
              

Nasledujúce obrázky znázorňujú ako vyzerá škraboška zložená z rovnostranných trojuholníkov a následne už vyfarbená podľa zadania.

Škraboška zložená z trojuholníkov

Vyfarbená škraboška

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

Žiaci si túto úlohu najčastejšie zľahčili tak, že nastavili na začiatku hrúbku pera na základe požiadavky, a potom iba nakreslili vedľa seba dva rovnaké rovnostranné trojuholníky. Častou chybou bolo to, že niektorí žiaci nakreslili iba otvor pre jedno oko (obrázok zo zadania) a na druhé oko pozabudli. Taktiež iba niektoré tímy pri svojom riešení používali pomocné procedúry. Väčšinou to riešili všetko v jednej hlavnej procedúre.

Takmer všetci nakreslili škrabošku so špicom smerujúcim nahor, avšak niektorí žiaci ju nakreslili so špicom smerujúcim nadol.