Autorské riešenie
[stiahni]

Korytnačky mali nastavenú vlastnosť "Automatické ťahanie". Úlohou bolo vložiť a naprogramovať tlačidlo, ktoré otestuje, či každá korytnačka je na svojom mieste. Počet správne umiestnených korytnačiek sa vypíše do textového políčka. 

Jedno z možných riešení tejto úlohy je nasledovné. Zistíme súradnice miest na mape a porovnáme, či príslušná korytnačka sa nachádza v blízkosti týchto súradníc. Ak áno, zarátame bod. Trošku sa pohráme so zoznamami, a ukážeme si, že ak ich vieme správne používať, ušetríme si množstvo práce.

Procedúra koľko otestuje, koľko korytnačiek je na svojom mieste.

viem kolko
  urob "p [[253 79]
           [250 50]
           [258 25]
           [233 -8]
           [174 -39]
           [203 -62]
           [216 -75]
           [176 -89]
           [161 -221]
           [365 -220]]

  urob "k [k1 k2 k3 k4 k5 k6 k7 k8 k9 k10]
  urob "i 0

  preprvky "w :k
    [pre :w
      [ak (vzdialenost xSur ySur prvok 1 prvok pocitadlo :p prvok 2 prvok pocitadlo :p < 10) [zvys "i]]]
  text1'NechHodnota :i
koniec

Do premennej "p si uložíme súradnice miest na mape. Premenná "k je zoznamom našich desiatich korytnačiek. Príkaz "preprvky" prebehne zoznamom korytnačiek a každú korytnačku otestuje. Môžeme ho chápať aj ako cyklus, ktorý sa opakuje pre každú korytnačku z našeho zoznamu. Všimnime si, že aj tu využívame premennú "pocitadlo, ktorú poznáme z príkazov cyklu.

Pomohli sme si ešte novou procedúrou "vzdialenost", ktorá pomocou Pytagorovej vety vypočíta vzdialenosť dvoch bodov v rovine. Každý bod (súradnice mesta na mape a pozícia korytnačky) je zadaný svojou x-ovou a y-ovou súradnicou.

viem vzdialenost :x1 :y1 :x2 :y2
  vy sqrt((:x1-:x2)*(:x1-:x2)+(:y1-:y2)*(:y1-:y2))
koniec 

Ako to teda celé pracuje? Ukáže si to teste korytnačky Estónska - korytnačka "k1.

Príkaz preprvky "w :k priradí na začiatku do premennej "w hodnotu "k1. Teda meno prvej korytnačky. Súradnice hlavného mesta Estónska, Tallin sú: [253 79], teda prvý prvok zoznamu "p.

Príkaz pre :w hovorí, že ideme testovať správnosť umiestnenia korytnačku "k1. Vyhodnotenie podmienky AK vyzerá takto:

              

vzdialenost xSur ySur prvok 1 prvok pocitadlo :p prvok 2 prvok pocitadlo :p < 10
vzdialenost xSur ySur prvok 1 prvok 1 :p prvok 2 prvok 1 :p < 10
vzdialenost xSur ySur prvok 1 [253 79] prvok 2 [253 79] < 10
vzdialenost xSur ySur 253 79 < 10
vzdialenost xSur ySur 253 79 < 10

vzdialenost xSur ySur 253 79 vráti vzdialenosť bodov [xSur ySur] - súradnice korytnačky "k1 a [253 79] - súradnice mesta Tallin. Ak je táto vzdialenosť menšia ako 10, hodnota premennej "i sa zvýši o 1. Túto hodnotu vypíšeme do políčka "text1.

Podobne to vyzerá pre zvyšné korytnačky. 

Najčastejšie chyby

Často ste testovali presnú súradnicu korytnačky. Aby sa bod zarátal, musela byť umiestnená len v jednom konkrétnom bode (najčastejšie v strede mesta). Niektorý z vás testovali len jednu súradnicu (nie vždy sa to však dá). V tomto prípade bolo potrebné otestovať, či korytnačka leží v žltom krúžku mesta.