Bienvenidas/os a un nuevo artículo de ejercicios con Scratch. En la primera tanda explicamos y ejercitamos los concepto básicos como, por ejemplo, las condiciones iniciales. En el segundo empezamos con ejercicios prácticos (incluso rompimos nuestro robot). A partir de ahí, seguimos aprendiendo y, en esta sexta entrega, continuaremos la misma metodología. Recordad que, para ver los retos y las soluciones, deberéis ir al usuario que he creado para estos artículos aquí.

En el último artículo aprendimos a controlar a BaMiau a través de un control de teclado. Hoy vamos a conseguir que BaMiau juegue a un deporte de balón. Pero para ello, primero veremos un poco de teoría.

UN POCO DE TEORÍA

Hasta el momento, hemos estado programando las acciones de BaMiau. Teníamos siempre una pantalla parecida a esta:

ejercicios scratch

Si recordamos el primer artículo, estuvimos tratando las diferentes secciones de la misma. Pero dejamos una por comentar, concretamente, esta:

Pulsando sobre este icono obtendremos un desplegable que nos permitirá añadir un nuevo diseño. En este caso añadiremos un balón, el que queramos mientras sea redondo.

icono scratch

Si tenemos a BaMiau seleccionado (se reconoce porque hay un reborde azul sobre el que está seleccionado) debo pediros que añadáis cualquier instrucción al panel de programación, exactamente igual que hemos hecho en los retos anteriores. A continuación seleccionaremos el balón. Y, oh… todo ha desaparecido. ¡HORROR!

¿O quizá no? ¿Qué ha pasado? ¿Ha desaparecido realmente? Pues no, no ha desaparecido. Si volvemos a seleccionar a BaMiau, el código está ahí de nuevo. Eso tiene una explicación muy sencilla: cada uno de los objetos que añadamos al proyecto tendrá su propio código. Y actuará en consecuencia. Por consiguiente podremos programar cada objeto (así llamaremos a partir de ahora a cada elemento) de manera independiente. Y, claro, podremos hacer que interaccionen. Y eso es lo que haremos hoy.

A nivel de notación diremos que cada objeto dispone de un código asociado. Y, el conjunto de todos los códigos de todos los objetos, es lo que denominaremos como programa.

RETOS DE HOY

RETO 14

Bien, lo que queremos conseguir en este primer reto es que BaMiau responda al control del teclado. Exactamente igual que en el reto 13 del artículo anterior.

A continuación añadiremos el segundo objeto, un balón.

Condiciones iniciales del balón:

  • Posición: x = 100 y = 50
  • Orientación: 90º (es un balón esférico, en realidad nos da igual la orientación)

Funcionamiento del balón:

  • Debe estar funcionando permanentemente.
  • Si BaMiau entra en contacto con el balón, este debe desplazarse a una posición aleatoria.

Necesitaremos un bucle, una instrucción condicional y alguna instrucción de movimiento. Tocará jugar con el bloque de sensores para encontrar las condiciones de contacto.

Os dejo que lo penséis un poco. Podréis hallar una propuesta de solución bajo el nombre de RETO_14_SOL.

RETO 15

Este reto es corto y sencillo. Se trata de modificar el código del reto anterior para añadir un fondo. Por ejemplo, el de una cancha de baloncesto o un campo de fútbol. Solamente se trata de darle ambientación a nuestro programa.

Para ello tendréis que investigar por el icono igual a este:

Podréis hallar una propuesta de solución bajo el nombre de RETO_15_SOL.

UN POCO (MÁS) DE TEORÍA

Y ahora, la madre del cordero. Vamos a intentar que BaMiau pueda, no solamente hacer reaccionar el balón, sino dirigir su movimiento. Pero para ello necesitaremos pasar información del código de un objeto al de otro objeto (en este caso de BaMiau a el balón). Para ello usaremos las variables.

Una variable es como un cajita para contener la información. Esa caja tiene un nombre. Cada vez que un código escriba sobre la caja con un nombre, cambiará el contenido de dicha caja (la información) por el nuevo contenido. Si leemos el contenido de dicha caja, nos devolverá la información que se hubiera escrito en ella en la última ocasión.

Pongamos un ejemplo. Tenemos una variable llamada Dirección, entonces:

  • Instrucción 1: escribe “derecha” en la variable “dirección”.
  • Instrucción 2: escribe “izquierda” en la variable “dirección”.
  • Instrucción 3: escribe “arriba” en la variable “dirección”.
  • Instrucción 4: lee la variable “dirección”.
  • Respuesta instrucción 4: la variable “dirección” contiene “arriba”.

Bien, pues lo primero que tenemos que hacer es crear una una variable y darle un nombre, en mi caso: DIRECCIÓN. Lo haremos pulsando en esta casilla.

variable scratch

A continuación añadiremos esa variable (habrán aparecido nuevas opciones) a la zona del código. Pero no la añadiremos en la secuencia del código, es decir a continuación del código, sino que la soltaremos en cualquier punto de la zona de código (recordemos que es el panel central de la aplicación de Scratch). Desde este momento tenemos una variable disponible para el programa.

Pero claro, tener una variable implica que deberíamos usarla de alguna manera. En primer lugar tendremos que darle un valor. Es muy importante que nos acostumbremos a que, en el momento en el que creamos una variable, vayamos a la sección de condiciones iniciales y le demos un valor de inicio. En muchos sistemas, intentar leer de una variable que no contiene información puede ser peligroso. Así que mejor que tomemos esta costumbre como hábito de trabajo.

Bien, ahora que ya hemos escrito una variable pondremos también la variable en el código del objeto balón. A partir de ahora podemos usarla en ambos códigos. Y ya estamos listos para el próximo reto, que no va a ser fácil.

ESTE RETO NO VA A SER FÁCIL

RETO 16

Lo que queremos conseguir esta vez es dirigir el balón a través del movimiento de BaMiau. Para ello modificaremos el programa del reto 15, y lo haremos de la siguiente manera:

  • Cada vez que BaMiau se desplace en una dirección, asignaremos a la variable DIRECCIÓN, un valor.
  • Cada vez que BaMiau entre en contacto con el objeto balón haremos, este deberá conocer la dirección (leer la variable) y moverse 10  pasos.

El reto de hoy no es especialmente sencillo, pero será importante para poder desarrollar nuevas funcionalidades. Podréis encontrar una propuesta de solución en el fichero RETO_16_SOL.

CONCLUSIÓN

Hoy hemos tocado un par de temas especialmente importantes, el uso de variables es imprescindible para poder desarrollar programas complejos. En los próximos artículos profundizaremos en el uso de las variables y aprenderemos múltiples funcionalidades, usos y metodologías.

Y con esto y un bizcocho (yo siempre los recomiendo con chocolate y más si es de Batman) habremos terminado los nuevos ejercicios. Espero que os hayan gustado y recordad que podéis consultarme cualquier duda, ya sea de estos ejercicios con scratch o cualquier otra cosa, mandando un correo electrónico a marc@bebeamordor.com. ¡Nos vemos en el siguiente artículo!

5/5 - (3 votos)
Marc Travé
Soy Marc, a veces conocido como Krennaste. Actualmente con el privilegio de estar en la junta de Ayudar Jugando (www.ayudarjugando.org). Ingeniero vocacional, apasionado de la música rock y de meterse bajo el océano, friki (de narices según mis amigos/as), frikitradi, leer es mi manera de respirar, me encanta hacer radio y participar en el podcast @0enCordura .

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

En cumplimiento de la legislación española vigente en materia de protección de datos de carácter personal y del reglamento europeo RGPD 679/2016 le informamos de:
Responsable: Julia María Iriarte Gahete + info
Finalidad: Gestión del envío de información solicitada, gestión de suscripciones al blog y moderación de comentarios. + info
Legitimación:: Consentimiento expreso del interesado. + info
Destinatarios: No se cederán datos a terceros para la gestión de estos datos.
Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. + info
Información adicional:: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web bebeamordor.com + info