Zvířata můžete ukládat do pole a rozmnožovat je, kde se vám zlíbí. Tuto možnost využijeme k tomu, abychom si postavili oplocenou ohradu se zvířaty a vytvořili si kdykoli okamžitou zoologickou zahradu. Když se tento projekt spustí, vytvoří pole a naplní ho zvířaty podle vašeho výběru.
Tento projekt bude obsahovat dva příkazy:
- „pen“: Zavoláním tohoto příkazu nejprve přikážete nástroji Builder, aby kolem vaší pozice vytvořil oplocenou ohradu, aby zvířata neutekla.
- „zoo“:
- Provedení činnosti
- Vytvoření projektu
- Vytvořte pole pro zvířata
- Přidejte zvířata do pole
- Vyberte si zvířata
- Mějme ohradu pro zvířata
- Najděte místo pro pero
- Nastavte počáteční značku
- Nakreslete obrys pera
- Postavte ploty
- Vyzkoušejte příkaz „pero“
- Připravte se na vypuštění zvířat
- Pust je!
- Vyzkoušejte příkaz „zoo“
- Dokončete program Zoo
- Výzva 1 – Přidejte do zoo další zvířata
- Úkol 2 – Vytvořte druhé pole pro jména zvířat
- (Úkoly 1-2)
- (Úkoly 3-4)
- Kam byste tyto bloky umístili v našem stávajícím kódu?“
- Experimenty
- Experiment 1 – Přidejte ptačí budku, pouze ptáci!
- Experiment 2 – Přidejte další expozici zoo pro chobotnice
Provedení činnosti
Vytvoření projektu
-
Vytvořte nový projekt MakeCode s názvem „Zoo“.
-
V
||loops:LOOPS||
je||loops:on start||
, který spustí své příkazy jednou, jakmile se projekt spustí. Přetáhněte tento blok do kódovacího pracovního prostoru.
||loops:on start||
se spustí při spuštění programu. To může být někdy nepříjemné, protože testujete kód nebo chcete program znovu spustit, ale nemusíte pochopit, proč váš program nefunguje. Při vytváření kódu, který závisí na ||loops:on start||
, použijte k restartování kódu tlačítka v levém dolním rohu.
- Klepněte na tlačítko zastavit v levém dolním rohu okna pro připojení kódu.
- Následujícím krokem bude restartování kódovacího prostředí. Klepněte na tlačítko přehrát. Pokud tlačítko přehrávání není zapnuté, pak se váš kód v Minecraftu nespustí.
-
Za
||variables:VARIABLES||
klikněte na tlačítko Make a Variable. -
Pojmenujte tuto proměnnou
animalarray
a klikněte na tlačítko Ok.
Vytvořte pole pro zvířata
-
Z
||variables:VARIABLES||
přetáhněte||variables:set||
do bloku Při spuštění. -
Pomocí rozbalovací nabídky v
||variables:set||
vyberte proměnnouanimalarray
. -
Klikněte na záložku Upřesnit v panelu nástrojů, aby se zobrazila zásuvka
||arrays:ARRAYS||
. -
Z bloku
||arrays:ARRAYS||
přetáhněte||arrays:create array with||
do bloku||variables:set "animalarray" to||
.
Přidejte zvířata do pole
-
Klikněte na znaménko Plus (+) na
||arrays:create array with||
a přidejte do pole dalších 7 slotů. Celková délka vašeho pole by měla být 8. -
Přetáhněte z
||mobs:MOBS||
blok zvířat do prvního slotu||arrays:create array with||
. -
Zaplňte zbytek pole bloky zvířat. Kliknutím pravým tlačítkem myši na
||mobs:animal||
a výběrem možnosti Duplikovat vytvoříte kopie tohoto bloku.
Vyberte si zvířata
Vytvořte zoo s 8 různými druhy zvířat. Uvědomte si, že některá zvířata sežerou jiná zvířata! Například oceloti a kuřata spolu příliš nevycházejí. Rozmyslete si, jakou zoologickou zahradu chcete, a podle toho plánujte.
- Pomocí rozevíracích nabídek v blocích
||mobs:animal||
vyberte různé druhy zvířat ve svém poli.
Mějme ohradu pro zvířata
Teď, když máte nastavené pole zvířat, pracujme na vytvoření oploceného výběhu pro vaši zoo. K tomu použijete bloky ||builder:BUILDER||
. Stavitel je ve hře jako neviditelný kurzor, který dokáže velmi rychle umístit bloky podél cesty. Nasměrujete Stavitele, aby šel do bodu v jihovýchodním rohu a vytvořil značku, což je neviditelný referenční bod. Pak mu dáte sérii příkazů, aby obkreslil čtverec. Nakonec je stavitel schopen podél této cesty umístit ploty.
-
Ze záložky
||player:PLAYER||
přetáhněte blok||player:on chat command||
na pracovní plochu. -
Přepište příkaz „pero“.
-
Klikněte na záložku Rozšířené ve skupině nástrojů a zobrazte zásuvku
||builder:BUILDER||
Soubor nástrojů. -
Z
||builder:BUILDER||
přetáhněte||builder:builder teleport to||
do||player:on chat command "pen"||
.
Najděte místo pro pero
Připomeňte si, že souřadnice Minecraftu se vždy udávají v souřadnicích X, Y, Z, kde X je od západu na východ a Z je od severu na jih. Chceme, aby Stavitel začínal v severovýchodním rohu pera vzhledem k hráči, takže pokračujte a změňte souřadnice tak, abyste zadali místo 5 bloků východně a 5 bloků severně od vaší pozice.
- V položce
||builder:builder teleport to||
změňte hodnoty pozice na(~5, ~0, ~-5)
.
Nastavte počáteční značku
Ujistěte se, že je stavitel otočen správným směrem, aby vykreslil pero kolem vás. Poté, co je stavitel otočen správným směrem, můžete ho nechat umístit startovní značku.
-
Z
||builder:BUILDER||
přetáhněte||builder:builder face||
ven a pod||builder:builder teleport to||
. Výchozí nastavení „čelem na západ“ je v pořádku. -
Dále z
||builder:BUILDER||
uchopte||builder:builder place mark||
, který umístíte za||builder:builder face||
.
Nakreslete obrys pera
Nyní jednoduše necháme Stavitele nakreslit čtverec.
-
Z
||loops:LOOPS||
přetáhněte smyčku||loops:repeat||
a umístěte ji za||builder:builder place mark||
. Čtverec má čtyři strany, takže čtyřnásobné opakování je skvělé. -
Z
||builder:BUILDER||
přetáhni||builder:builder move||
do smyčky||loops:repeat||
. -
Napiš
10
do||builder:builder move||
, aby strany tvého pera tvořily 10 bloků. -
Ze
||builder:BUILDER||
přetáhněte||builder:builder turn||
za blok||builder:builder move||
.
Postavte ploty
Posledním krokem je, aby Stavitel umístil ploty podél čtverce, který obkresluje.
-
Za smyčku
||loops:repeat||
umístěte||builder:builder trace path from mark||
. -
Pomocí rozbalovací nabídky v
||builder:builder trace path from mark||
vyberte dubový plot.
Váš kód by měl vypadat podobně:
player.onChat("pen", function () { builder.teleportTo(pos(5, 0, -5)) builder.face(WEST) builder.mark() for (let i = 0; i < 4; i++) { builder.move(FORWARD, 10) builder.turn(TurnDirection.Left) } builder.tracePath(OAK_FENCE)})
Vyzkoušejte příkaz „pero“
Nyní otevřete plochý svět ve hře Minecraft a do okna chatu napište „pero“. Měli byste vidět, jak se kolem vás staví pero! Pro větší výzvu můžete zkusit přimět stavitele, aby přidal bránu plotu.
Připravte se na vypuštění zvířat
Teď přichází ta zábavná část. Pole je naloženo zvířaty, ohrada je postavena… je čas je vypustit! Pro tento příkaz jednoduše projdeme celé pole a pro každé zvíře v poli z něj vypustíme dvě z nich několik bloků od vás, ale stále uvnitř ohrady.
-
Z
||player:PLAYER||
získejte||player:on chat command||
a přejmenujte ho na „zoo“. -
Z
||loops:LOOPS||
přetáhni||loops:for element||
do svého||player:on chat command "zoo"||
. -
V
||loops:for element||
použij rozbalovací nabídku pro 2. slot a vyberanimalarray
.
Pust je!
-
Z bloku
||mobs:MOBS||
přetáhněte blok||mobs:spawn animal||
a umístěte jej dovnitř bloku||loops:for element||
. -
Z bloku
||variables:VARIABLES||
přetáhněte do bloku||mobs:spawn animal||
proměnnou value, která nahradí výchozí zvíře kuře. -
Upravte souřadnice v
||mobs:spawn animal||
na(~3, ~0, ~0)
, aby se zvířata spawnovala několik bloků od hráče. -
Chcete-li vytvořit dvojice zvířat, klikněte pravým tlačítkem myši na blok
||mobs:spawn animal||
a zvolte možnost Duplikovat. Pokud se rozhodnete, můžete zde také použít smyčku.
Váš kód by měl vypadat podobně:
let animalarray: number = player.onChat("zoo", function () { for (let value of animalarray) { mobs.spawn(value, pos(3, 0, 0)) mobs.spawn(value, pos(3, 0, 0)) }})
Vyzkoušejte příkaz „zoo“
Vraťte se do světa Minecraftu a zadejte do okna chatu příkaz „zoo“ a sledujte, jak se zvířata objevují!
Dokončete program Zoo
let animalarray: number = player.onChat("pen", function () { builder.teleportTo(pos(5, 0, -5)) builder.face(WEST) builder.mark() for (let i = 0; i < 4; i++) { builder.move(FORWARD, 10) builder.turn(TurnDirection.Left) } builder.tracePath(OAK_FENCE)})player.onChat("zoo", function () { for (let value of animalarray) { mobs.spawn(value, pos(3, 0, 0)) mobs.spawn(value, pos(3, 0, 0)) }})animalarray =
Sdílený program: https://makecode.com/_2Jc55Xbjz1v8
Výzva 1 – Přidejte do zoo další zvířata
Vytvořte větší ohradu a přidejte všechny různé druhy zvířat! K dispozici je 19 různých druhů. Pak sledujte, jaké šílenství nastane!
Úkol 2 – Vytvořte druhé pole pro jména zvířat
Tento úkol uplatňuje několik konceptů v jednom. Jste pro ni připraveni? Nezapomeňte, že učení není vždy o vítězství. Pokud se s touto výzvou potýkáte, pak se necítíte znechuceni. Pokud vám tato úloha připadá příliš snadná, pak byste možná mohli vytvořit svou vlastní úlohu a podělit se o ni s jiným studentem!“
Ocelot je pro mnohé velmi neznámé zvíře, takže by bylo dobré znát jména zvířat, která plodíme.
Vytvořte druhé pole, které obsahuje seznam jmen zvířat z ||variables:animalarray||
. Jakmile se pak zvířata začnou rozmnožovat, použijte ||player:say||
pro zpětnou vazbu. Zařazení ||loops:pause||
mezi zvířata dá uživateli více času na přečtení a pochopení, co jsou jednotlivá zvířata zač.
Úkoly:
- Vytvořte pole
||variables:animalnames||
. - Vložte všechna jména zvířat do
||variables:animalarray||
. - Vypište jména po jejich spawnu.
- Po vypsání kód pozastav na 1 sekundu nebo déle… je na tobě, jak dlouho bude pauza trvat.
Protože je v úkolu č. 2 tolik zvířat, která je třeba vypsat, můžeš zvážit, zda část z toho neuděláš v javascriptu místo pomocí bloků. Po vytvoření pole můžete jména zvířat zadávat v javascriptu mnohem snadněji. Navíc si můžete všechna jména mnohem snadněji prohlédnout.
Kódování bloků je úžasné, ale v tomto případě by bylo zadávání v javascriptu mnohem rychlejší. Podívejte se na příklad níže. Dokážete přijít na to, jak tento formát zkopírovat pro všechna zvířata? Až to dokončíte, můžete přidat své ||player:say||
a ||loops:pause||
tak, že se vrátíte do editoru bloků.
Ujistěte se, že jsou čárky a uvozovky na správném místě, jinak dojde k chybě.
(Úkoly 1-2)
Níže uvedené bloky jsou odpovědí a mohly by vám pomoci udělat práci rychleji. Teď už jen musíte přijít na to, kam je umístit! Abyste mohli vypsat jména zvířat, musíte použít čítač, který slouží jako klíč ke každému jménu. Nezapomeňte, že klíč je číslo, pod kterým jsou věci umístěny v poli…. pro naše nové pole budou klíče vypadat takto:
Slepice = 0
Kráva = 1
Vepř = 2
atd…
Pro každé zvíře v našem novém poli budete muset nastavit jména. Jeden příklad je uveden níže. Nyní stačí vymyslet, kam tento kód umístit, a dokončit nastavení jmen pro všechna zvířata.
let animalnames: string = animalnames = "Chicken"
(Úkoly 3-4)
Níže jste dostali čítač ‚CurrentAnimalNum‘. Ten slouží jako klíč při získávání hodnot z pole ||variables:animalnames||
.
Pokud tomu všemu nerozumíte, není to konec světa. Jen se podívejte, zda dokážete tento kód umístit na správné místo. Při tom se snažte pochopit, proč se věci dějí tak, jak se dějí. Pokud potřebujete s umístěním pomoci, požádejte svého instruktora o radu.
Kam byste tyto bloky umístili v našem stávajícím kódu?“
let currentAnimalNum = 0let animalnames: string = animalnames = player.say(animalnames)currentAnimalNum += 1loops.pause(1000)
Experimenty
Přidejme do naší stávající zoo, abychom ji nadále zvětšovali a zlepšovali. Pohrajte si s kódem v jednotlivých experimentech a zjistěte, co ještě můžete přidat, aby byla zoo úplnější!
Experiment 1 – Přidejte ptačí budku, pouze ptáci!
V tomto experimentu oddělíme ptáky do vlastního pole a postavíme klec speciálně pro ně. Voliéra je budova, ve které se chovají ptáci. To je to, co dostanou. Do okna chatu napiš „zoo“ a nyní dostaneš pozemní zvířata do ohrady a ptáky do jejich vlastní voliéry. Stále však existují určité problémy.
Pro začátek použij tento kód.
Jak bys to mohl vylepšit? Můžeš pro každé zvíře postavit samostatnou ohradu? Co dalšího bys mohl vymyslet?“
Tady vidíš jeden problém. Podívejte se, jak je osel červený. To proto, že na ně útočí naši vlci. Možná je třeba vlky oddělit do vlastní ohrady nebo jeskyně nebo něčeho podobného.
Experiment 2 – Přidejte další expozici zoo pro chobotnice
Protože chobotnice plavou ve vodě, tento program pro ně postaví místo, kde mohou plavat v zemi, a pak ho naplní vodou. Pro spuštění napište do okna chatu „zoo“.
Znovu můžete zkusit zoologickou zahradu ještě rozšířit přidáním značek, různých prvků, jeskyní, řek nebo jiných věcí, které vás napadnou.
Všimněte si, že kód používá funkce, které pomáhají uspořádat nové výběhy pro různé druhy zvířat. Každá funkce vytvoří ohradu a zvířata pro každý druh zvířete.