Vítejte u dalšího dílu programování v Minecraft: Education Edition. Dnes, se podíváme na lehce složitější programy, ve kterých využijeme, jak jsem slíbil v minulém díle, funkci if a základy logických funkcí. I nadále budeme využívat programu Code Conection a programovat v MakeCode, takže pokud jste náhodou zapomněli, jak je ovládat či spustit, doporučuji si přečíst 1. díl, ve kterém je vše dopodrobna popsáno a vysvětleno.
Kdo je Agent?
Než se ale pustíte do programování, potřebujete se seznámit ještě s hvězdou dnešního článku, a to s Agentem. A proč je vlastně tak důležitý při programování v Minecraftu? Agent je robůtek, kterého můžete naprogramovat tak, aby dělal, co se vám zlíbí. To z něj dělá fantastický nástroj pro výuku, protože umožňuje studentům vidět, co přesně jejich program krok za krokem dělá. Rovněž jim pomáhá si tak lépe představit, jak celý program funguje. Tento extrémně roztomilý společník se vždy objeví na stejné pozici jako hráč, a to po propojení Minecraft: Education Edition s Code Conection.
Základy programování Agenta
Nyní, když už jste s vašim pomocníkem seznámili, bychom si mohli ukázat pár základních věcí, které váš Agent dokáže. Všechny příkazy týkající se Agenta můžete najít v záložce Agent, kde jsou pak ještě rozřazeny do dalších podkategorií, ke kterým se v průběhu tohoto nebo dalšího dílu dostaneme.
Cvičení 1. – věrný společník
Objevíte se ve světe, zapnete Code Conection a hned tady máte první problém. Agent si vás vůbec nevšímá a jen stojí na místě, kde se objevil. A to rozhodně není dobře. Svět Minecraftu je místo plné nástrah a my nechceme, aby se nám v něm tenhle roztomilý robůtek někde ztratil. Proto si vytvoříte jednoduchý program, díky kterému vás bude agent následovat. Využijme pro něj funkci on player <action>, kterou už jsme si přestavili minule.
Oproti prvnímu dílu do ní ale vložíte funkci ze záložky Agent, přesněji funkci agent teleport to player, který přesune agenta na vaší aktuální pozici.
Funguje to? Výborně! Tímto jsme základy úspěšně nechali za sebou. Teď se budete muset naučit trochu víc teorie a potom si zkusíte s Agentem ukázat už něco trochu pokročilejšího.
Funkce If a loopy v podání Minecraftu
Nyní se dostáváme k svatému grálů programování, a to k funkci if (když). Tato funkce umožňuje programu, aby provedl zadaný příkaz pouze pokud je splněna námi určená podmínka. Pokud není, tak se buďto nic nestane, nebo se, využijeme-li funkce else (jinak), spustí příkaz jiný.
Pak tu máme takzvané loopy, neboli smyčky (cykly). Ty nám umožňují jednu část programu opakovat neustále dokola, nebo do splnění nějaké podmínky.
Cvičení 2. – běžec
A teď, když už máte dostatečné znalosti, se můžete vrhnout na trochu složitější program. Pokusíte se totiž naučit našeho robůtka, jak rozeznávat po jakém povrchu se pohybuje a kdy má zastavit. První, co k tomu potřebujete je, aby Agent chodil a neteleportoval se. K tomu využijete příkaz Agent move <direction> by <number> blocks, který zajistí, aby se Agent posunul o vámi zvolený počet bloků v námi zadaném směru.
Když tuto funkci spojíte se smyčkou forever, získáme robůtka, který se neustále pohybuje kupředu. To vám ale zdaleka nestačí. Vy potřebujeme, aby Agent věděl kde začít a kde skončit svůj běh. Na to použijete funkci Agent inspect down = a určíte si blok, který chcete identifikovat. Pro vás třeba bude blok ruditu (redstone block) místo, kde zastaví a blok smaragdu (emerald blok) místo, kde začne. Za pomocí funkce if, pak můžeme vytvořit podmínku znějící: „pokud agent detekuje <určitý blok> pod sebou, vykonej <akci>”.
Toto by nám stačilo pro začátek programu, ale co s jeho koncem? Zde budete potřebovat ještě jeden typ smyčky, a to while <condition>, která opakuje dokola funkce uvnitř ní, dokud platí vámi zvolená podmínka. Dále budete potřebovat logickou funkci not, která slouží k tomu, aby převrátila kdy podmínka je a není pravda. S těmito dodatky už můžete dokončit váš program, který bude vypadat asi takto.
Výzva
Bohužel se blížíme ke konci tohoto dílu programování v Minecraftu, avšak předtím, než se rozloučíme, jsem si pro vás připravil zajímavou výzvu. Dnes jsme si řekli o spoustě velmi užitečných nástrojů, které využijete při programování, ale naneštěstí jsme se neponořili moc do hloubky u žádného z nich. A proto vám dávám výzvu pro jejíž splnění vám budou stačit funkce, o kterých jsme si dnes pověděli, ale budete je muset použít v trochu komplikovanějších situacích. Úkolem bude naprogramovat agenta tak, aby prošel autonomně následující bludiště.
Pokud byste ale nemohli tento problém vyřešit, nebo byste si ho chtěli zkontrolovat, můžete na této stránce najít mé řešení.
A s touto výzvou bych ukončil tento díl Programování v Minecraftu. Jak už jsem řekl, ani dnes jsme nedělali příliš komplikované věci, ale nyní k nim již máte všechny potřebné nástroje.
Zkuste vyřešit mou výzvu, anebo rovnou experimentujte s funkcemi, které jste se dnes naučili používat, protože bez cvičení se mistrem nikdo nestane. Vyzkoušejte si třeba programovací Minecraft mapu Nesnáze v zahradě.
Číst předchozí díl: Základy programování – 1. díl