Autorské riešenie
[stiahni]

Pri riešení tohto zadania bolo potrebné stiahnuť si už pripravenú časť úlohy a doplniť procedúru porovnanie. Táto procedúra má za úlohu porovnať počet kapúst (zelených políčok) na ľavej a pravej strane. Počet kapúst na oboch stranách sa má vypísať a rovnako aj výsledok porovnávania. Na riešenie tejto úlohy bolo možné a vhodné použiť pomocné procedúry.

Pomocná procedúra pocitanie, ktorá zistí počet kapúst na ľavej a pravej strane a vypíše výsledky.

viem pocitanie
  ph vl 90 do 25
  urobTu "pocetKapust 0
  kym [farbaBodu<>"biela] [
   ak farbaBodu="zelena5 [
    zvys "pocetKapust
   ]
   ; do 25
  ]
  vz 25
  kym [farbaBodu<>"biela] [
   vz 25
  ]
  vp 90
 
  lava'nechHodnota :pocetKapust
 
  ph vp 90 do 25
  urobTu "pocetKapust 0
  kym [farbaBodu<>"biela] [
   ak farbaBodu="zelena5 [
    zvys "pocetKapust
   ]
   do 25
  ]
  vz 25
  kym [farbaBodu<>"biela] [
   vz 25
  ]
  vl 90
 
  prava'nechHodnota :pocetKapust
koniec

Korytnačka sa otočí o 90 stupňov vľavo a posunie sa na prvé políčko. Posúva sa vpred o dĺžku políčka, kým nenačíta bielu farbu. Ak načíta farbu zelenú (zelená5), počet kapúst sa zvýši o 1. Keď načíta bielu farbu, bude sa posúvať o vzdialenosť políčka, kým nenačíta opäť bielu farbu. Do textového políčka lava sa vypíše zistený počet kapúst na ľavej strane a počet kapúst sa vynuluje. Korytnačka cúvne na začiatočnú pozíciu a otočí sa o 90 stupňov vpravo. Celý postup sa zopakuje aj pre pravú stranu a do textového políčka prava sa vypíše zistený počet kapúst na pravej strane.

Procedúra porovnanie, ktorá porovná hodnoty v textových políčkach lava a prava

viem porovnanie
  pocitanie
  ak2 prava'hodnota = lava'hodnota [
   viac'nechHodnota "Rovnako
   ][ak2 prava'hodnota > lava'hodnota [
    viac'nechHodnota "Prava]
    [viac'nechHodnota "Lava]
  ]
koniec

Zaujímavé riešenia a najčastejšie chyby

Táto úloha sa dočkala, žiaľ, len piatich rešení. Riešenia boli pekné a kreatívne. Chválim využitie pomocných procedúr, ako napríklad pocitajP a pocitajL, ktoré zistili počet kapúst zvlášť na pravej a ľavej strane. Chybou bolo napríklad nesprávne vypísanie výsledku porovnávania a nesprávne otočenie korytnačky, po zistení počtu kapúst jednej strany (korytnačka potom nevedela určiť počet kapúst na druhej strane).