Technoplaneta – šifrovací hra pro děti

Řešení pro Úkol 4-1 – Robotí bludiště

Řešení

Že budeme muset prohnat roboty po bludišti je jasné na první pohled. Nejprve zkusíme prohlédnout hříště – máme tu spoustu šipeček, otazníků (patrně křižovatky) a kromě nich jsou tam ještě písmenka S1S8, stejný počet C a několik F a Z. Protože počet S a C je stejný, jako počet robotů dole, nebude těžké uhodnout, že se jedná o starty a cíle. Fajn, můžeme tedy prvního robota nasadit na S1.

Písmenka F a Z se neobjevují jen na ploše, ale pozorný luštitel odhalí, že i anténky robota mají tento tvar. Všiml si toho někdo už před začátkem kola, když Edna zlá bedna, jak robota pojmenoval někdo z týmů, vystrkoval hlavu zpoza webstránky? Je tu určitě souvislost, ale jak přesně robot funguje budete muset vydedukovat. Naštěstí s tím pomůžou obrázky a komix na vrchu zadání. Všimněte si zvláštního trávicího systému našeho robota. Má v sobě pořadač, ve kterém jsou už předem naplněny příkazy směrů. Zdá se, že robot má dva pořadače s odlišným chováním. Do jednoho vede vstup i výstup nahoře, do druhého je nahoře jen vstup a výstup dole. Prohlédněte si komix, uvidíte, že jsou dvě možnosti jak vzít někoho v poředí. Buď toho, kdo přišel první, nebo toho, kdo přišel poslední. U zadání i vidíte, že robot má na hlavě přepínač, kterým se přepíná mezi tzv. frontou a zásobníkem.

A protože robot neremcá a plní příkazy, pojďme zkusit příkazy provést a cestou si ujasníme několik drobností. Postup robota a přemýšlení by mohl vypadat nějak takto:

  • Nasadím toho prvního vlevo dole na S1.
  • Úvodní směr pohybu je předpokládám podle šipky u robota, tj. nahoru.
  • Jdu, seberu příkaz vlevo.

Vsuvka - nevím, jestli brát směry absolutně nebo relativně. Protože v robotech jsou vždy šipka odspodu někam, tak to beru spíš relativně, tj. jak by se měl otočit od svého současného směru a ne absolutní směr, kam se bude pohybovat.

  • Předpokládám, že šipku jsem jen spapal, dám ji do zásobníku nahoru, tj. v něm mám navrchu L a předpřiravenými PPL.
  • Šipka není křižovatka, takže se stále pohybuji nahoru. Spapám rovně. To mě znejisťuje, protože jsem se výše rozhodl interpretovat otáčky relativně od aktuálního směru, ale pak nechápu, proč by v zadání měly být směry rovně, které nezmění směr pohybu. Každopádně v zásobníku mám RLPPL.
  • Stále se pohybuji rovně nahoru až k první křižovatece s otazníkem. Tam vyjmu ze zásobníku to, co je navrchu, tj. Rovně. Pohybuji se tedy z křižovatky furt nahoru a v zásobníku mám LPPL.
  • Zobnu P, mám v zásobníku PLPPL.
  • Na další křižovatce se točím vpravo a mířím na východ. V zásobníku zbývá LPPL.
  • Přeběhnu přes písmenko F. Uvažuji, co bych měl dělat. Buď přepnout okamžitě na frontu a nebo jen zobnout F do zásobníku. Přepnout na frontu by mě asi napadlo hned, ale není to konsistentní s tím, že šipky jsem také jen zobal a nevykonával, dokud jsem nedošel na křižovatku, takže spíš zkusím jen zobnout. V zásobníku mám FLPPL.
  • Dojdu na křižovatku na okraji plochy. V zásobníku zobnu F, přepínám na frontu, kde je RPP (zapisuji zeshora dolů, ale odebírat budu odzdola).
  • Protože jsem jen přepnul přepínač, směr pohybu neměním a ocitnu se mimo plochu. To je špatně, takže backtrackuji k F.
  • U F se přepnu ze zásobníku na frontu hned na místě, tj. mám RPP.
  • Dojdu na křižovatku, odeberu P, otáčím se doprava, tj. na jih. V zásobníku je RP.
  • Už vidím, jak tam asi bude zakroucená nožička R.
  • Dorazím na křižovatku, odebírám P, točím se doprava, tj. na západ, v zásobníku zbývá R.
  • Přejdu Z, přepínám na zásobník. V něm zbylo od minule myslím LPPL. Neměním směr, pokračuji na západ.
  • Pokračuji na křižovatku, tam L otáčí na jih, v zásobníku zbývá PPL.
  • Zobu L, v zásobníku je tedy LPPL a pokračuji stále na jih.
  • Na křižovatce točím doleva, tj. na východ. V zásobníku PPL.
  • Na křižovatce hned vedle točím na jih. PL.
  • Cestou zobu L, tj. mám LPL.
  • Na křižovatce točím L, jdu na východ. Zbývá PL.
  • Na křižovatce točím doprava, tj. na jih, dělám krok a jsem v cíli. Končím pohyb, v zásobníku zbylo ještě nevyužité L.

Vyšlo písmenko R, teď je možnost pokračovat s dalšími roboty. Postupně získám všechna písmenka hesla Ricochet.