Základy programování v Minecraftu – 2. díl

9. 1. 2020 Minecraft

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.

Agent ze hry Minecrfat Education Edition
Minecraft agent

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.

Tlačítko záložky Agent
Záložka Agent

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.

Blok kódu ze hry Minecraft Education Edition s příkazem "on player walk"
Blok kódu

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.

Blok kódu ze hry Minecraft Education Edition s příkazem "on player walk agent teleport to player"
Blok kódu

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ý.

Blok kódu ze hry Minecraft Education Edition s funkcí "if"
Blok kódu

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.

Blok kódu ze hry Minecraft Education Edition se smyčkou.
Blok kódu

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.

Blok kódu ze hry Minecraft Education Edition s příkazem "agent move forward by 1"
Blok kódu

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>”.

Blok kódu ze hry Minecraft Education Edition s příkazem "if agent inspect block down = emerald block then".
Blok kódu

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.

Blok kódu ze hry Minecraft Education Edition s příkazem "forever: if agent inspect block down = emerald block then: while not agent inspect block down = redstone block, do agent move forward by 1".
Blok kódu

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ě.

Bludiště postavené v Minecraftu jako výzva k naprogramování Agenta.
Bludiště pro Agenta

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

Nastavení souborů Cookies

1. Co jsou soubory cookies

Soubory cookies jsou krátké textové soubory, které internetová stránka odešle do vašeho prohlížeče. Umožňují internetové stránce zaznamenat informace o vaší návštěvě, například zvolený jazyk a podobně. Následující návštěva stránek tak pro vás může být snazší a příjemnější. Soubory cookies jsou důležité, neboť bez nich by procházení sítě Internet bylo mnohem složitější. Soubory cookies umožňují lepší využití naší internetové stránky a přizpůsobení jejího obsahu vašim potřebám. Soubory cookies používá téměř každá internetová stránka na světě.

2. Druhy souborů cookies

Relační (tedy dočasné) soubory cookies nám umožňují propojovat vaše jednotlivé aktivity po dobu prohlížení těchto internetových stránek. V okamžiku otevření okna vašeho prohlížeče se tyto soubory vytvoří a po zavření okna vašeho prohlížeče se odstraní.

Trvalé soubory cookies nám pomáhají váš počítač identifikovat, jestliže opětovně navštívíte naši internetovou stránku.

3. Využívání souborů cookies

V souladu s ustanovením § 89 odst. 3 zák. č. 127/2005 Sb., o elektronických komunikacích, v účinném znění, si vás tímto dovolujeme informovat, že naše internetové stránky využívají pro svoji činnost soubory cookies, tedy vaše soubory cookies, včetně trvalých, zpracováváme.

Internetové prohlížeče obvykle obsahují správu souborů cookies. V rámci nastavení vašeho prohlížeče tak pravděpodobně můžete jednotlivé soubory cookies ručně mazat, blokovat či zcela zakázat jejich používání. Pro více informací použijte nápovědu vašeho internetového prohlížeče. Jsou-li cookies povoleny, lze toto nastavení internetového prohlížeče považovat za souhlas se zpracováním osobních údajů.

4. Účel použití souborů cookies

K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookies. Informace o tom, jak náš web používáte, sdílíme se svými partnery působícími v oblasti sociálních médií, inzerce a analýz. Používáním internetových stránek vyjadřujete souhlas propojením následujících služeb: Google Analytics, Google Tag Manager, Facebook Pixel, Microsoft Clarity.

Soubory cookies využíváme, kromě účelu uvedeného v předchozím odstavci, pouze pro měření návštěvnosti webové stránky.

5. Správce osobních údajů

Provozovatelem webové stránky studuj.digital a správcem osobních údajů je společnost: pg-sec s.r.o., sídlem Rybná 716/24, Staré Město, 110 00 Praha 1, identifikační číslo 09580905, zapsaná v obchodním rejstříku Městského soudu v Praze, oddíl C, vložka 338028.

​6. Zásady ochrany osobních údajů

Podrobnější informace o souborech cookies a zpracování tvých osobních údajů najdete v našich Zásadách ochrany osobních údajů.

Nezbytné

Tyto soubory cookie jsou nutné pro základní funkce stránky, a jsou proto vždy povolené. Mezi ně patří soubory cookie, které stránce umožňují si vás zapamatovat při procházení stránky v rámci jedné relace nebo, pokud o ně požádáte, mezi relacemi.

Volitelné

Výkon

Tyto soubory cookie nám pomáhají vylepšovat funkce stránek sledováním využití této webové stránky. V některých případech zrychlují zpracování vašeho požadavku a umožňují nám zapamatovat si vaše vybrané předvolby na stránce. Pokud soubory cookie zakážete, může se tím zhoršit přesnost našich doporučení a zpomalit funkčnost stránek.

Sociální média a relamy

Díky souborům cookies sociálních médií si můžete připojit ke svým sociálním sítím a prostřednictvím sociálních médií sdílet obsah z naší webové stránky. Reklamní soubory cookie (třetích stran) shromažďují informace pro lepší přizpůsobení reklamy tvým zájmům, a to na webových stránkách studuj.digital i mimo ně. V některých případech tyto soubory cookies zpracovávají vaše osobní údaje. Pokud chcete získat více informací o zpracování osobních údajů, přečtěte si naše Zásady ochrany osobních údajů. Pokud zakážete soubory cookies, mohou se zobrazovat reklamy, které méně souvisejí s vašimi zájmy, nebo nebudete moci účinně používat odkazy na Facebook, Instagram či jiné sociální sítě anebo nebudete moci sdílet obsah na sociálnch médiích.