Minecraft es una de las mejores formas de introducir a los jóvenes y a los nuevos en la codificación. Los bloques de comandos son fáciles de aprender y usar, y la programación de Java está a la vuelta de la esquina con los mods de Minecraft y los complementos de Bukkit. También es un lugar muy divertido para que los programadores experimentados jueguen.
¿Qué son los bloques de comandos y por qué debería usarlos?
Los bloques de comandos son un componente de redstone que ejecutan comandos de consola cuando se encienden. Los comandos de la consola se pueden ejecutar desde la ventana de chat siguiéndolos con una barra inclinada, ‘/’. Los comandos se usan para alterar el mundo del juego de formas que no son posibles a mano y, cuando se usan correctamente en bloques de comandos, le dan a Minecraft su propio lenguaje de pseudoprogramación. El código se compone de dos cosas: lógica y ejecución, y la mayoría de los lenguajes de programación requieren que ambos estén escritos en texto. La codificación de Minecraft toma un camino diferente; la lógica y la estructura del programa están determinadas por dónde se colocan los bloques y cómo están conectados, lo que significa que puede desplazarse sobre su mundo y ver las diferentes partes de su programa dispuestas bloque por bloque.
Muy bien, entonces, ¿cómo empiezo?
Esta guía utiliza los nuevos bloques de comandos de la versión 1.9. Esto funcionará en 1.8, pero puede requerir un poco más de experiencia.
Abre un nuevo mundo de Minecraft (Superflat funciona mejor), asegúrate de estar en modo creativo y presiona el botón «/». Esta es la ventana de comandos, que es la misma que la ventana de chat, excepto que comienza con una ‘/’, y todo lo que comienza con una barra inclinada es un comando. El primer comando que puede ejecutar es
/ dar @p minecraft: command_block
Analicemos esto. El comando «/ donar» coloca elementos en el inventario de los jugadores y tiene dos argumentos: el jugador y el elemento a donar. El «@p» es un selector de objetivos. El selector «@p» selecciona el jugador más cercano. Alternativamente, también puede usar su nombre de usuario de Minecraft, pero si ejecuta un comando desde la consola, siempre será el jugador más cercano. Los otros selectores de objetivos son «@a» para todos los jugadores, «@r» para un jugador aleatorio y «@e» apuntará a todas las entidades. Las entidades incluyen cualquier cosa que no sea un bloque, como monstruos, bolas de nieve, animales y flechas.
El comando debería ejecutarse correctamente y darle un nuevo bloque. Colóquelo en cualquier lugar del piso para comenzar.
Puede ver que el bloque de control está apuntando en la dirección en que lo coloca, al igual que las tolvas o los hornos. Será importante más tarde.
Haga clic derecho en el bloque (o use cualquier tecla que use para acceder a las tablas de construcción y los hornos) y será recibido por la GUI del bloque de control.
Suena un poco aterrador al principio, pero no se preocupe, todos esos botones están haciendo algo. El botón que dice «Impulso» cambia el tipo de bloque de comando. Hay tres tipos diferentes de bloques de control:
- Impulse, que ejecuta comandos en el borde ascendente de la corriente de redstone. Esto significa que cuando se encienden, ejecutarán su comando una vez y se detendrán, incluso si continúan encendidos. Esta es la configuración predeterminada y es la única disponible en 1.8
- Repetir, que ejecutan comandos con cada tick que reciben. Un tick es como un marco y se pueden ejecutar varios comandos en un solo tick, hasta 20 veces por segundo.
- Cadena, que solo se ejecuta si el bloque de comando que apunta a él ha ejecutado su comando. Estos se ejecutarán en orden, uno tras otro, en un solo tick, de ahí el nombre ‘Cadena’.
El botón que dice «Incondicional» evita que el bloque de comandos compruebe si el bloque anterior de la cadena se ejecutó correctamente. La otra opción, «Condicional», solo se ejecuta si el bloque anterior no generó ningún error.
El botón que dice «Requiere Redstone» solo ejecuta el comando si el bloque de comando tiene energía. La otra opción, «Siempre encendido», evita que el controlador compruebe la alimentación y simplemente asume que lo está. Esta opción no debe usarse con bloques de comando Impulse ya que los hace innecesarios.
Hagamos una cadena, nuestro primer ‘guión’. Coloque uno o dos bloques de control de cadena frente al primer bloque de control de pulso, así:
Asegúrese de configurar los bloques de la cadena en «Siempre encendido». De lo contrario, necesitaríamos colocar bloques de piedra roja o corriente, lo que ocupa un espacio innecesario. Coloque un botón en el bloque de control de pulso al inicio de la cadena y presiónelo.
Nada va a suceder. ¡Eso es porque aún no los hemos llenado de pedidos! Haga clic derecho en el bloque de pulso para editarlo y ponga un comando básico
decir empezar
Tenga en cuenta que no necesitamos una barra en los bloques de comandos. Puede usar uno si lo desea, pero no es necesario. El comando «/ say» toma un argumento, un texto y lo dice desde la perspectiva del corredor. Si lo ejecuta, se mostrará como «mensaje
Puede completar los bloques de comando de la cadena para escribir más cosas para discutir. Se ejecutarán en orden, sin demora, en el mismo tick. Si desea ejecutarlos con un retraso, deberá configurarlos con repetidores Redstone. Además de «/ say», hay otros comandos básicos que hacen más cosas, como «/ give», que da elementos, «/ effect», que aplica efectos de poción, «/ setblock» y «/ fill» que modifican tu mundo, y muchos otros. Se puede encontrar una gran base de datos de pedidos en el Minecraft Wiki, así como otros contenidos útiles.
Selectores de destino
Los selectores de destino “@p” son en realidad mucho más poderosos de lo que parecen a primera vista. Por ejemplo, si quisiéramos apuntar a todas las entidades, usaríamos «@e», pero si quisiéramos apuntar solo a zombis, usaríamos
@mi[type=Zombie]
Observe los corchetes después de «@e». Dentro de estos corchetes están los argumentos para el selector de destino, una lista completa de los cuales se puede encontrar en el Minecraft Wiki. El argumento «tipo» solo selecciona entidades de un cierto tipo, siendo esta «Zombie». Si quisiéramos apuntar a todos los zombis dentro de los 10 bloques del bloque de comando, usaríamos
@mi[type=Zombie,r=10]
La «r» es un argumento de radio. También puede orientar sus anuncios por ubicación, nombre, equipo y puntuación, entre otros.
Encadenamiento de comandos
Introduzcamos otro comando que no es como los demás. El comando es «/ ejecutar». Este comando toma otro comando como entrada y lo ejecuta desde la perspectiva de otra entidad. La estructura de «/ execute» es
/ ejecutar @target XYZ / comando
X, Y y Z son las coordenadas desde las que ejecutar el comando. No importa con la mayoría de los comandos, pero importa mucho si está usando el posicionamiento relativo. Una posición relativa comienza con «~» y va seguida de un número positivo o negativo que indica el número de bloques desde el origen, que se indica con «~ ~ ~». Entonces, por ejemplo, si quisiéramos ejecutar «/ say» como si un aldeano estuviera hablando, podríamos configurar el comando así:
/ ejecutar @e[type=Villager] ~ ~ ~ / di hola
Este comando hará que se envíe un mensaje a todos, de todos los aldeanos. No es óptimo si tenemos más de una persona o más de un aldeano, así que cambiemos el formato de este comando:
/ ejecutar @a ~ ~ ~ / ejecutar @e[type=Villager,c=1] ~ ~ ~ / dile a @p Oye
Es mucho más complejo que el primero e implica encadenar dos comandos «/ execute». El primer comando «/ ejecutar» se ejecuta en cada jugador, luego el segundo busca exactamente un aldeano cercano, luego ese aldeano le dice al jugador más cercano «Oye». Esto asegura que solo un aldeano hable por persona.
Aprenda la sintaxis
Ciertamente, hay muchos comandos en Minecraft y cada uno tiene su propia sintaxis. Los menús de ayuda para cada comando generalmente le dirán rápidamente qué argumentos necesita el comando y la Minecraft Wiki tiene una lista detallada de lo que hace cada uno. No se trata tanto de saber exactamente qué hace cada comando, sino de cómo usarlos juntos. Después de todo, Minecraft es un juego, por lo que jugar con los controles es parte del proceso de aprendizaje.