Du kan gemme dyrene i et array og spawne dem, hvor som helst du vil. Vi vil bruge denne mulighed til at bygge en indhegnet dyrepark og skabe en øjeblikkelig zoologisk have, når som helst vi vil. Når dette projekt starter op, vil det oprette et array og fylde det med dyr efter eget valg.

Dette projekt vil indeholde to kommandoer:

  • “pen”:
  • : Kald først denne for at give Builder ordre til at oprette en indhegnet kasse omkring din position, så dyrene ikke undslipper.
  • “zoo”: Ved denne kommando vil MakeCode gå igennem dit array og spawne to dyr af hver type inden for hegnet.

Gør aktiviteten

Opret projektet

  1. Opret et nyt MakeCode-projekt med navnet “Zoo”.

  2. I ||loops:LOOPS|| er der en ||loops:on start||, som vil køre sine kommandoer én gang, så snart projektet starter op. Træk denne blok ind i kodningsarbejdsområdet.

||loops:on start|| kører, når programmet starter. Dette kan til tider være besværligt, fordi du tester kode eller ønsker at genstarte programmet, men måske ikke forstår, hvorfor dit program ikke virker. Brug knapperne i nederste venstre hjørne til at genstarte din kode, når du opbygger kode, der er afhængig af ||loops:on start||.

  1. Klik på knappen Stop i nederste venstre hjørne af dit kodetilslutningsvindue.

Stop kode

  1. Næst skal du genstarte kodningsmiljøet. Klik på knappen play (afspil). Hvis play-knappen ikke er tændt, vil din kode ikke køre i Minecraft.

Play

  1. Fra ||variables:VARIABLES|| skal du klikke på knappen Make a Variable (Lav en variabel).

  2. Nævn denne variabel animalarray, og klik på Ok.

Opret variablen 'animalarray'

Opret et array for dyr

  1. Fra ||variables:VARIABLES|| skal du trække ||variables:set|| ind i blokken Ved start.

  2. Vælg variablen animalarray ved hjælp af rullemenuen i ||variables:set||.

  3. Klik på fanen Avanceret i værktøjskassen for at få vist skuffen ||arrays:ARRAYS|| Værktøjskasse.

  4. Fra ||arrays:ARRAYS|| skal du trække en ||arrays:create array with|| ind i ||variables:set "animalarray" to||.

Vælg blokken Opret array

Føj dyr til arrayet

  1. Klik på Plus-tegnet (+) på ||arrays:create array with|| for at tilføje yderligere 7 pladser i dit array. Den samlede længde af dit array skal være 8.

  2. Fra ||mobs:MOBS|| skal du trække en dyreblok ind i den første plads i ||arrays:create array with||.

  3. Fyld resten af dit array med dyreblokke. Du kan højreklikke på ||mobs:animal|| og vælge Duplikere for at lave kopier af denne blok.

Dupliker dyreblokken

Vælg dine dyr

Opret en zoologisk have med 8 forskellige dyretyper. Vær opmærksom på, at visse dyr vil spise andre dyr! For eksempel kommer ocelotter og høns ikke særlig godt ud af det med hinanden. Tænk over, hvilken slags zoo du vil have, og planlæg derefter.

  1. Vælg forskellige dyretyper i dit array ved hjælp af drop-down-menuerne i ||mobs:animal||-blokkene.

Vælg dyretyperne til array-elementer

Lad os få et dyrehegn

Nu, hvor du har oprettet dit dyrearray, skal vi arbejde på at skabe et indhegnet område til din zoo. Du skal bruge ||builder:BUILDER||-blokkene til dette. Builderen er som en usynlig cursor i spillet, der kan placere blokke langs en sti meget hurtigt. Du skal få Builder til at gå til et punkt i det sydøstlige hjørne og skabe et mærke, som er et usynligt referencepunkt. Derefter skal du give den en række kommandoer for at få den til at tegne en firkant. Til sidst kan Builderen placere hegn langs denne sti.

  1. Fra ||player:PLAYER|| skal du trække en ||player:on chat command|| blok til arbejdsområdet.

  2. Giv kommandoen “pen” et nyt navn.

  3. Klik på fanen Avanceret i værktøjskassen for at få vist skuffen ||builder:BUILDER|| Værktøjskasse.

  4. Træk ||builder:builder teleport to|| fra ||builder:BUILDER|| ind i ||player:on chat command "pen"||.

Find et sted til pennen

Husk, at Minecraft-koordinater altid er angivet i X, Y, Z-koordinater, hvor X er fra vest til øst, og Z er fra nord til syd. Vi ønsker, at Builder skal starte i det nordøstlige hjørne af pennen i forhold til spilleren, så gå videre og ændre koordinaterne til at angive et sted 5 blokke øst og 5 blokke nord for din position.

  1. I ||builder:builder teleport to|| skal du ændre positionsværdierne til (~5, ~0, ~-5).

Vælg Builder-teleportblokken

Sæt startmærket

Lad os sørge for, at Builderen vender den rigtige vej, så den tegner pennen omkring dig. Når Byggeren er vendt i den rigtige retning, kan du så få den til at placere et startmærke.

  1. Fra ||builder:BUILDER|| skal du trække ||builder:builder face|| ud og ind under ||builder:builder teleport to||. Standardindstillingen ‘ansigt mod vest’ er fin.

  2. Næst skal du fra ||builder:BUILDER|| tage en ||builder:builder place mark||, som du placerer efter ||builder:builder face||.

Tegn omridset af pennen

Nu skal vi blot få Byggeren til at tegne en firkant.

  1. Fra ||loops:LOOPS|| skal du trække en ||loops:repeat||-loop og placere den efter ||builder:builder place mark||. En firkant har fire sider, så det er fint at gentage fire gange.

  2. Fra ||builder:BUILDER|| skal du trække en ||builder:builder move|| ind i ||loops:repeat||-loop’en.

  3. Tryk 10 ind i ||builder:builder move|| for at gøre siderne på din pen til 10 blokke.

  4. Fra ||builder:BUILDER|| trækker du ||builder:builder turn|| efter ||builder:builder move||-blokken.

Sæt dine hegn op

Det sidste trin er at få Byggeren til at placere hegn langs den firkant, den tegner.

  1. Fra ||builder:BUILDER|| placerer du et ||builder:builder trace path from mark|| efter ||loops:repeat||-løjpen.

  2. Vælg et egehegn ved hjælp af drop-down-menuen i ||builder:builder trace path from mark||.

Din kode bør ligne dette:

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)})

Prøv kommandoen “pen”

Åbn nu en flad verden i Minecraft-spillet, og skriv “pen” i chatvinduet. Du skulle se en pen blive bygget hele vejen rundt om dig! For at få en ekstra udfordring kan du prøve at få Builder til at tilføje en hegnsporte.

Pen Built

Get ready to release the animals

Nu kommer den sjove del. Rækken er fyldt op med dyr, stalden er bygget … det er tid til at slippe dem løs! I denne kommando vil vi simpelthen gå igennem hele arrayet, og for hvert dyr i arrayet vil vi spawne to af dem et par blokke væk fra dig, men stadig inden for hegnet.

  1. Få et ||player:on chat command|| fra ||player:PLAYER||, og omdøb det til “zoo”.

  2. Fra ||loops:LOOPS||, træk en ||loops:for element|| ind i din ||player:on chat command "zoo"||.

  3. I ||loops:for element|| skal du bruge rullemenuen for 2. slot til at vælge animalarray.

Vælg 'animalarray'-variabel

Lad dem gå!

  1. Fra ||mobs:MOBS|| skal du trække en ||mobs:spawn animal||-blok og placere den inde i ||loops:for element||.

  2. Fra ||variables:VARIABLES|| skal du trække værdivariablen ind i ||mobs:spawn animal||-blokken og erstatte standarddyret kylling.

  3. Justér koordinaterne i ||mobs:spawn animal|| til (~3, ~0, ~0), så dyrene spawner et par blokke væk fra spilleren.

  4. For at oprette par af dyr skal du højreklikke på ||mobs:spawn animal||-blokken for at Duplikere den. Du kan også bruge en sløjfe her, hvis du vil.

Din kode bør ligne denne:

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)) }})

Afprøv kommandoen “zoo”

Gå tilbage til din Minecraft-verden, og skriv kommandoen “zoo” i chatvinduet, og se dyrene dukke op!

Zoo

Fuldfør zoo-programmet

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 = 

Delt program: https://makecode.com/_2Jc55Xbjz1v8

Udfordring 1 – Tilføj flere dyr til zoo

Opret en større indhegning, og tilføj alle de forskellige dyretyper! Der er 19 forskellige slags dyr. Se så, hvordan det går for vildt!

Zoo - Udfordring 1

Udfordring 2 – Opret et andet array til dyrenavne

Denne udfordring anvender flere begreber i ét. Er du klar til det? Husk, at læring ikke altid handler om at vinde. Hvis du har problemer med denne udfordring, skal du ikke føle dig modløs. Hvis du synes, at denne udfordring er for let, kan du måske lave din egen udfordring og dele den med en anden elev!?

En ocelot er et meget ukendt dyr for mange, så det ville være rart at kende navnene på de dyr, som vi avler.

Opret et andet array, der opregner navnene på dyrene fra ||variables:animalarray||. Når dyrene så spawner, skal du bruge ||player:say|| til at give feedback. Ved at inkludere et ||loops:pause|| mellem dyrene får brugeren mere tid til at læse og forstå, hvad de forskellige dyr er.

Opgaver:

  1. Opret et ||variables:animalnames|| array.
  2. Sæt alle dyrenavnene ind i ||variables:animalarray||.
  3. Skriv navnene ud, når de spawner.
  4. Pause koden efter udskrivning i 1 sekund eller mere… du bestemmer selv, hvor længe du vil holde pause.

Da der er så mange dyr, der skal opregnes i opgave nr. 2, kan du overveje at gøre noget af dette i javascript i stedet for at bruge blokke. Når du har oprettet et array, kan du meget nemmere indtaste navnene på dyrene i javascript. Desuden kan du se alle navnene meget nemmere.

Blockkodning er fantastisk, men i dette tilfælde ville det være meget hurtigere at skrive i javascript. Se på eksemplet nedenfor. Kan du finde ud af, hvordan du kan kopiere dette format for alle dyrene? Når du så er færdig, kan du tilføje dine ||player:say|| og ||loops:pause|| ved at gå tilbage til blokeditoren.

Sørg for, at dine kommaer og anførselstegn er alle på det rigtige sted, ellers får du en fejl.

Brug Javascript til hastighed

(Opgaver 1-2)

Blokkene nedenfor er svarene og kan måske hjælpe dig med at få opgaven hurtigere udført. Nu skal du bare finde ud af, hvor du skal placere dem! For at udskrive dyrenes navn skal du bruge en tæller, der fungerer som nøgle til hvert navn. Husk at nøglen er det nummer, hvor tingene er placeret i arrayet…. for vores nye array vil nøglerne se således ud:

Kylling = 0
Ko = 1
Svin = 2
etc…

Du skal indstille navnene for hvert dyr i vores nye array. Et eksempel er givet nedenfor. Nu skal du bare finde ud af, hvor du skal placere denne kode og afslutte indstillingen af navnene for alle dyrene.

let animalnames: string = animalnames = "Chicken"

(Opgaver 3-4)

Nedenfor har du fået tælleren ‘CurrentAnimalNum’. Denne fungerer som nøgle, når du henter værdier fra ||variables:animalnames|| arrayet.

Hvis du ikke forstår alt dette, er det ikke verdens undergang. Du skal bare se, om du kan placere denne kode på det rigtige sted. Mens du gør dette, skal du prøve at forstå, hvorfor tingene sker, som de gør. Hvis du har brug for hjælp til placeringen, kan du spørge din instruktør om vejledning.

Hvor ville du placere disse blokke i vores eksisterende kode?

let currentAnimalNum = 0let animalnames: string = animalnames = player.say(animalnames)currentAnimalNum += 1loops.pause(1000)

Zoo - Udfordring 2

Eksperimenter

Lad os tilføje noget til vores eksisterende zoo for fortsat at gøre den større og bedre. Leg med koden i de enkelte eksperimenter og se, hvad du ellers kan tilføje for at gøre zoo’en mere komplet!

Eksperiment 1 – Tilføj et fuglehus, kun fugle!

I dette eksperiment adskiller vi fuglene i deres eget felt og bygger et bur specielt til dem. En voliere er en bygning, hvor man holder fugle. Det er det, de vil få. Skriv “zoo” i chatvinduet, og nu vil du få dine landdyr i deres hegn og fugle i deres egen voliere. Der er dog stadig nogle problemer.

Brug denne kode til at starte med.

Hvordan kan du gøre dette bedre? Kan du bygge en separat hytte til hvert dyr? Hvad kan du ellers finde på at gøre?

Fuglehus

Her kan du se et problem. Se, hvordan æselet er rødt. Det er fordi vores ulve angriber dem. Måske skal ulvene adskilles til deres egen hytte eller grotte eller noget lignende.Voksende zoo

Eksperiment 2 – Tilføj endnu en zoo-udstilling til blæksprutterne

Da blæksprutter svømmer i vand, bygger dette program et sted for dem at svømme i jorden og fylder derefter jorden med vandet. Skriv ‘zoo’ i chatvinduet for at komme i gang.

Du kan igen prøve at udvide zoologisk have endnu mere ved at tilføje skilte, forskellige funktioner, huler, floder eller andre ting, du kan komme i tanke om.

Bemærk, at koden bruger funktioner til at hjælpe med at organisere de nye indhegninger til de forskellige slags dyr. Hver funktion opretter indhegningen og dyrene for hver type dyr.

Blæksprutter fra en båd

Blæksprutter tæt på

Blæksprutteindhegning og hele vores zoologiske have

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.