Puedes almacenar animales en una matriz y engendrarlos donde quieras. Utilizaremos esta capacidad para construir un corral de animales vallado y crear un zoo instantáneo cuando queramos. Cuando este proyecto se inicia, se creará una matriz y llenarlo con los animales de su elección.

Este proyecto contará con dos comandos:

  • «corral»: Llama a este primero para ordenar al Constructor que cree un corral cercado alrededor de su posición, para que los animales no se escapen.
  • «zoo»: En este comando, MakeCode irá a través de su matriz y engendrará dos animales de cada tipo, dentro del corral.

Haz la actividad

Crea el proyecto

  1. Crea un nuevo proyecto MakeCode llamado «Zoo».

  2. En ||loops:LOOPS||, hay un ||loops:on start|| que ejecutará sus comandos una vez, en cuanto se inicie el proyecto. Arrastre ese bloque al espacio de trabajo de codificación.

||loops:on start|| se ejecuta cuando se inicia el programa. Esto puede ser un dolor a veces porque usted está probando el código o quiere reiniciar el programa, pero puede no entender por qué su programa no está funcionando. Utilice los botones en la esquina inferior izquierda para reiniciar su código cuando la construcción de código que se basa en ||loops:on start||.

  1. Haga clic en el botón de parada en la esquina inferior izquierda de su ventana de conexión de código.

Detener Código

  1. A continuación, tendrá que reiniciar el entorno de codificación. Haga clic en el botón de reproducción. Si el botón de reproducción no está encendido, entonces su código no se ejecutará en Minecraft.

Jugar

  1. Desde ||variables:VARIABLES||, haga clic en el botón Hacer una variable.

  2. Nombre esta variable animalarray, y haga clic en Ok.

Haga la variable 'animalarray'

Haga un array para animales

  1. Desde ||variables:VARIABLES||, arrastre ||variables:set|| en el bloque On start.

  2. Usando el menú desplegable de ||variables:set||, selecciona la variable animalarray.

  3. Haz clic en la pestaña Avanzado de la caja de herramientas para mostrar el cajón de la caja de herramientas ||arrays:ARRAYS||.

  4. Desde ||arrays:ARRAYS||, arrastra un ||arrays:create array with|| dentro de ||variables:set "animalarray" to||.

Pulsa el bloque de creación de matrices

Añade animales a la matriz

  1. Pulsa el signo más (+) en ||arrays:create array with|| para añadir 7 ranuras más en tu matriz. La longitud total de su matriz debe ser de 8.

  2. Desde ||mobs:MOBS||, arrastra un bloque Animal a la primera ranura de ||arrays:create array with||.

  3. Puebla el resto de tu matriz con bloques de animales. Puedes hacer clic con el botón derecho en ||mobs:animal|| y seleccionar Duplicar para hacer copias de este bloque.

Duplica el bloque de animales

Elige tus animales

Crea un zoo con 8 tipos diferentes de animales. ¡Ten en cuenta que ciertos animales se comerán a otros animales! Por ejemplo, los ocelotes y las gallinas no se llevan muy bien. Piensa en qué tipo de zoo quieres, y planifica en consecuencia.

  1. Usando los menús desplegables de los bloques ||mobs:animal||, selecciona diferentes tipos de animales en tu conjunto.

Selecciona los tipos de animales para los elementos del array

Tengamos un corral de animales

Ahora que tienes tu Array de animales configurado, vamos a trabajar en la creación de un recinto vallado para tu zoo. Para ello utilizarás los bloques ||builder:BUILDER||. El Constructor es como un cursor invisible en el juego que puede colocar bloques a lo largo de un camino muy rápidamente. Dirigirás al Constructor para que vaya a un punto en la esquina sureste y cree una marca, que es un punto de referencia invisible. Luego le darás una serie de órdenes para que trace un cuadrado. Finalmente, el constructor es capaz de colocar vallas a lo largo de este trazado.

  1. Desde ||player:PLAYER||, arrastra un bloque ||player:on chat command|| al Espacio de trabajo.

  2. Nombra el comando «pluma».

  3. Haz clic en la pestaña Avanzado de la Caja de herramientas para que aparezca el cajón de la Caja de herramientas ||builder:BUILDER||.

  4. Desde ||builder:BUILDER||, arrastra ||builder:builder teleport to|| a ||player:on chat command "pen"||.

Busca un lugar para el bolígrafo

Recuerda que las coordenadas de Minecraft siempre se especifican en coordenadas X, Y, Z, donde X es de oeste a este y Z es de norte a sur. Queremos que el Constructor comience en la esquina noreste de la pluma en relación con el jugador, así que seguir adelante y cambiar las coordenadas para especificar una ubicación 5 cuadras al este y 5 cuadras al norte de su posición.

  1. En ||builder:builder teleport to||, cambia los valores de posición a (~5, ~0, ~-5).

Elige el bloque de teletransporte del constructor

Asegura la marca de inicio

Asegúrate de que el Constructor está orientado correctamente para que dibuje el corral a tu alrededor. Después de que el constructor esté orientado en la dirección correcta, puedes hacer que coloque una marca de inicio.

  1. Desde ||builder:BUILDER||, arrastra ||builder:builder face|| hacia fuera y debajo de ||builder:builder teleport to||. El valor por defecto ‘cara al Oeste’ está bien.

  2. A continuación, desde ||builder:BUILDER||, coge un ||builder:builder place mark|| para ponerlo después del ||builder:builder face||.

Dibuja el contorno de la pluma

Ahora simplemente haremos que el Constructor dibuje un cuadrado.

  1. Desde ||loops:LOOPS||, arrastra un bucle ||loops:repeat|| y colócalo después de ||builder:builder place mark||. Un cuadrado tiene cuatro lados, así que repetirlo cuatro veces está muy bien.

  2. Desde ||builder:BUILDER||, arrastra un ||builder:builder move|| al bucle ||loops:repeat||.

  3. Escribe 10 en ||builder:builder move|| para que los lados de tu bolígrafo sean de 10 bloques.

  4. Desde ||builder:BUILDER||, arrastra ||builder:builder turn|| después del bloque ||builder:builder move||.

Coloca tus vallas

El último paso es que el Constructor coloque vallas a lo largo del cuadrado que traza.

  1. Desde ||builder:BUILDER||, coloca una ||builder:builder trace path from mark|| después del bucle ||loops:repeat||.

  2. Usando el menú desplegable de ||builder:builder trace path from mark||, selecciona una Cerca de roble.

Tu código debería ser similar a esto:

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

Prueba el comando «pluma»

Ahora, abre un Mundo Plano en el juego Minecraft, y escribe «pluma» en la ventana de chat. Deberías ver cómo se construye un bolígrafo a tu alrededor. Para un reto extra, puedes intentar que el Constructor añada una puerta de valla.

Corral construido

Prepárate para liberar a los animales

Ahora viene la parte divertida. La matriz está cargada de animales, el corral ha sido construido… ¡es hora de soltarlos! Para este comando, simplemente recorreremos todo el array y por cada animal del array, engendraremos dos de ellos a unas cuantas manzanas de ti pero aún dentro del corral.

  1. Desde ||player:PLAYER||, consigue un ||player:on chat command|| y renómbralo «zoo».

  2. Desde ||loops:LOOPS||, arrastra un ||loops:for element|| a tu ||player:on chat command "zoo"||.

  3. En el ||loops:for element||, utiliza el menú desplegable de la 2ª ranura para seleccionar animalarray.

Selecciona la variable 'animalarray'

¡Suéltalos!

  1. Desde ||mobs:MOBS||, arrastra un bloque ||mobs:spawn animal|| y colócalo dentro de ||loops:for element||.

  2. Desde ||variables:VARIABLES||, arrastra la variable de valor al bloque ||mobs:spawn animal||, sustituyendo el animal de pollo por defecto.

  3. Ajusta las coordenadas en ||mobs:spawn animal|| a (~3, ~0, ~0), para que los animales aparezcan a unas cuantas manzanas del Jugador.

  4. Para crear parejas de animales, haz clic con el botón derecho del ratón en el bloque ||mobs:spawn animal|| para Duplicarlo. También podrías utilizar un bucle aquí si lo deseas.

Tu código debería ser similar a este:

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

Prueba el comando «zoo»

Vuelve a tu mundo Minecraft, y escribe el comando «zoo» en la ventana de chat, ¡y observa cómo aparecen los animales!

Zoo

Completa el programa 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 = 

Programa compartido: https://makecode.com/_2Jc55Xbjz1v8

Desafío 1 – Añade más animales al zoo

¡Crea un corral más grande y añade todos los tipos de animales! Hay 19 tipos diferentes. Entonces, ¡mira cómo se desata la locura!

Zoo - Reto 1

Reto 2 – Crea una segunda matriz para los nombres de los animales

Este reto aplica varios conceptos en uno. Te animas a hacerlo? Recuerda que aprender no siempre es ganar. Si te cuesta este reto entonces no te sientas desanimado. Si te parece que este reto es demasiado fácil, tal vez puedas hacer tu propio reto y compartirlo con otro estudiante.

Un ocelote es un animal muy oscuro para muchos, así que estaría bien saber los nombres de los animales que estamos engendrando.

Crea un segundo array que enumere los nombres de los animales de ||variables:animalarray||. Luego, a medida que los animales spawn utilizar ||player:say|| para dar retroalimentación. Incluir un ||loops:pause|| entre los animales dará al usuario más tiempo para leer y entender lo que son los diferentes animales.

Tareas:

  1. Crear un array ||variables:animalnames||.
  2. Poner todos los nombres de los animales en ||variables:animalarray||.
  3. Imprimir los nombres después de que aparezcan.
  4. Pausa el código después de la impresión durante 1 segundo o más… tu elección sobre el tiempo de pausa.

Debido a que hay tantos animales para listar para la tarea #2, puedes considerar hacer algo de esto en javascript en lugar de usar bloques. Después de crear un array puedes introducir los nombres de los animales mucho más fácilmente en javascript. Además puedes ver todos los nombres mucho más fácilmente.

La codificación por bloques es impresionante pero en este caso, escribir en javascript sería mucho más rápido. Mira el ejemplo de abajo. ¿Puedes averiguar cómo copiar este formato para todos los animales? Luego, cuando termines, puedes añadir tu ||player:say|| y ||loops:pause|| volviendo al editor de bloques.

Asegúrate de que tus comas y comillas están en el lugar correcto o recibirás un error.

Usa Javascript para acelerar

(Tareas 1-2)

Los bloques de abajo son las respuestas y podrían ayudarte a hacer el trabajo más rápido. ¡Ahora sólo tienes que averiguar dónde colocarlos! Para imprimir el nombre de los animales necesitas utilizar un contador que actúe como clave de cada nombre. Recuerda que la clave es el número en el que se colocan las cosas en el array…. para nuestro nuevo array, las claves serán como:

Pollo = 0
Vaca = 1
Cerdo = 2
etc…

Tendrás que poner los nombres de cada animal en nuestro nuevo array. Un ejemplo se da a continuación. Ahora sólo tiene que averiguar dónde colocar este código y terminar de establecer los nombres para todos los animales.

let animalnames: string = animalnames = "Chicken"

(Tareas 3-4)

Abajo se ha dado el contador ‘CurrentAnimalNum’. Esto actúa como clave a la hora de obtener valores del array ||variables:animalnames||.

Si no entiendes todo esto, no es el fin del mundo. Sólo tienes que ver si puedes colocar este código en el lugar correcto. Mientras haces esto, trata de entender por qué las cosas están sucediendo de la manera que son. Si necesitas ayuda en la colocación, pide orientación a tu instructor.

¿Dónde colocarías estos bloques en nuestro código existente?

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

Zoo - Desafío 2

Experimentos

Aumentemos nuestro zoo existente para seguir haciéndolo más grande y mejor. Juega con el código de cada experimento y mira qué más puedes añadir para hacer el zoo más completo!

Experimento 1 – Añade una pajarera, ¡sólo para pájaros!

En este experimento, separamos los pájaros en su propio conjunto y construimos una jaula para ellos específicamente. Una pajarera es un edificio donde se guardan los pájaros. Esto es lo que tendrán. Escriban ‘zoo’ en la ventana de chat y ahora tendrán sus animales terrestres en su corral y los pájaros en su propia pajarera. Sin embargo, todavía hay algunos problemas.

Usa este código para empezar.

¿Cómo podrías mejorar esto? Puedes construir un corral separado para cada animal? ¿Qué más se te ocurre hacer?

Pajarera

Aquí puedes ver un problema. Mira cómo el burro es rojo. Esto es porque nuestros lobos los están atacando. Quizás los lobos necesitan ser separados en su propio corral o cueva o algo.Creciendo el Zoo

Experimento 2 – Añade otra exhibición del zoo para los calamares

Como los calamares nadan en el agua, este programa construye un lugar para que naden en el suelo y luego llena el suelo con el agua. Escribe ‘zoo’ en la ventana de chat para empezar.

También puedes intentar ampliar el zoo aún más añadiendo señales, diferentes características, cuevas, ríos o cualquier otra cosa que se te ocurra.

Nota que el código utiliza funciones para ayudar a organizar los nuevos recintos para los diferentes tipos de animales. Cada función crea el corral y los animales para cada tipo de animal.

Los calamares de un barco

Los calamares de cerca

El recinto de los calamares y todo nuestro zoo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.