Autorské riešenie
[stiahni]

obrazovka mapy

Zo zadania úlohy vieme, že procedúra sa má volať hladaj:

viem hladaj
  ....
koniec

Musíme prejsť najprv 40 krokov k prvej značke aby sme vedeli kam ďalej v lese. Teda:

viem hladaj
  do 40
  ...
koniec

Z mapky vidíme, že ak sa máme pohybovať podľa šípok, musíme vedieť na ktorej šípke stojíme. Ak sa lepšie pozrieme na mapku zistíme, že šípka doprava je modrej farby, šípka hore je žltej farby, šípka dole zelenej farby šípka doľava červenej farby.

Keď už máme jednotlivé farby podľa ktorých sa budeme pohybovať, môžeme rozmýšľať ako budeme hľadať cestu von.

Budeme hľadať cestu von dovtedy, kým nestojíme na bielej farbe, to znamená, že sme na značke ktorá je von z lesa a vedie k pokladu:

viem hladaj

do 40
kym [ (nieje farbabodu="biela)]
[
  .....
]

koniec

Vieme už, dokedy budeme hľadať cestu von. Stačí nám dopísať, ako sa budeme pohybovať po mape.

Ak sme na modrej farbe, tak pôjdeme doprava, teda zmeníme x-ovú súradnicu o 40 (lebo každá značka je od ďalšej vzdialená 40 krokov)

nechxsur xsur+40

Ak sme na žltej farbe, tak pôjdeme hore, teda zmeníme y-ovú súradnicu, tak že k y-ovej súradnici pripočítame 40

nechysur ysur+40

Ak sme na zelenej farbe, tak pôjdeme dole, teda zmeníme y-ovú súradnicu, tak že od y-ovej súradnici odpočítame40

nechysur ysur-40

Ak sme na červenej farbe, tak pôjdeme doľava, teda zmeníme x-ovú súradnicu o 40 (

nechxsur xsur-40

viem hladaj
do 40
kym [(nieje farbabodu="biela)]
[  ak farbabodu="modra [nechxsur xsur+40]
   ak farbabodu="zlta [nechysur ysur+40]
   ak farbabodu="zelena [nechysur ysur-40]
   ak farbabodu="cervena [nechxsur xsur-40]
]
koniec

Táto úloha sa dá riešiť aj pomocou príkazov dopredu, dozadu, vľavo, vpravo, ale jej riešenie je oveľa zložitejšie ako uvedené naše autorské riešenie. Pretože tam si musíme pamätať z akého smeru ideme a kam ideme a podľa toho otáčať piráta Kuba.

Najčastejšie chyby, komentár k vašim riešeniam

 Najčastejšou chybou bolo, že ste používali rekurziu na hľadanie cesty von z lesa. Toto riešenie nie je veľmi efektívne. Na hľadanie cesty stačí použiť cyklus.