Autorské riešenie
[stiahni]

Úloha nechávala priestor Vašej fantázií, keďže v zadaní nebolo presne určené, ako má labyrint vyzerať. Vašou úlohou bolo nakresliť labyrint, ktorý:

  • má 10 stien v tvare sústredných kružníc,
  • každé dve susedné steny sú spojené jednou priečkou,
  • v každej stene je jeden prechod.

Najskôr teda nakreslíme 10 sústredných kružníc.

urobTu "pocetStien 10
urobTu "rozostup 20
nechFP "cierna
nechHP 1

opakuj :pocetStien [
  obrysKruhu poc*:rozostup*2
]

Počet stien (10) sme si uložili do premennej "pocetStien. Rozostup medzi stenami je uložený v premennej "rozostup.

Ďalej nakreslíme priečku medzi každou dvojicou stien. Počet priečok je o 1 menší ako počet stien a dĺžka každej priečky je rovná rozostupu stien.

opakuj :pocetStien - 1 [
  vp ?
  ph
  do poc * :rozostup
  pd
  do :rozostup
  ph
  vz (poc + 1) * :rozostup
]

Pokračujeme kreslením prechodov v stenách. Na každej stene stačí nakresliť bielu bodku a tým zmazať časť čierneho obrusu kruhu.

nechFP "biela
ph
vp 5
opakuj :pocetStien [
  vp ?
  do poc * :rozostup
  bod :rozostup
  vz poc * :rozostup
]

Celá procedúra labyrint vyzerá nasledovne:

viem labyrint
  urobTu "pocetStien 10
  urobTu "rozostup 20
  nechFP "cierna
  nechHP 1

  opakuj :pocetStien [
    obrysKruhu poc*:rozostup*2
  ]

  opakuj :pocetStien - 1 [
    vp ?
    ph
    do poc * :rozostup
    pd
    do :rozostup
    ph
    vz (poc + 1) * :rozostup
  ]

  nechFP "biela
  ph
  vp 5
  opakuj :pocetStien [
    vp ?
    do poc * :rozostup
    bod :rozostup
    vz poc * :rozostup
  ]
koniec

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

Túto úlohu riešilo 26 tímov. Väčšina riešení bola správna. Niektorí zabudli vykresliť priečky alebo prechody. Niektorí si úlohu zjednodušili a priečky nakreslili v jednej línii ako jednu čiaru.