Una mascota virtual

La semana anterior, en las extraescolares de programación, estuvimos aprendiendo cómo funcionaba la comunicación mediante el paso de mensajes de unos objetos a otros.  Esta semana vamos a seguir aplicando estos conceptos para realizar una mascota virtual.

El concepto de mascota virtual surgió en Japón en los años noventa cuando aparecieron los famosos  Tamagotchi (tamago ‘huevo’ y tomodachi ‘amigo’).

Tamagotchi

Estas mascotas permiten al usuario efectuar diferentes acciones, para conseguir la supervivencia de la misma, tales como alimentarla, asearla, vestirla, mimarla, entrenarla y jugar con ella. Las mascotas descontentas pueden emitir pitidos y a veces “morir”.

La interactividad puede ser clasificada en dos categorías: 

  • La interactividad a corto plazo o directa: comportamiento de acción-reacción por parte de la mascota.
  • La interactividad a largo plazo incluye las acciones que afectan al crecimiento, comportamiento o esperanza de vida de la mascota.

¡ Y qué mejor mascota que nuestro gato de Scratch !

EL GATO SE PRESENTA

Lo primero que hemos hecho es hacer aparecer al gato de manera estelar: deslizándose de un lado de la pantalla a otro. Luego nos saluda y pasa rápidamente a presentar el juego.

gato

 (El código asociado a la variable ‘juego’ la veremos más adelante)

Las acciones o interacciones que hemos elegido han sido: viajar, color, comer y jugar.

VIAJAR

A nuestro gato le gusta conocer nuevos sitios, por eso le hemos creado un botón que le permitirá viajar a distintos parajes.

viajar

Cuando se pulsa el botón VIAJAR se manda el mensaje ‘viajar’ a todos los objetos. El escenario es el objeto que escuchará dicho mensaje y que cambiará el fondo de la pantalla cada vez que lo reciba.

escenarios

Además, al inicio del programa, estableceremos uno de los fondos por defecto y ocultaremos la comida y el amigo, que aparecerán sólo cuando pulsemos el botón COMER y JUGAR respectivamente.

COLOR

Al gatete también le gusta ir a la moda, por lo que hemos decidido crearle un variado fondo de armario. ¿Qué color me pongo hoy? ¿Azul? ¿Amarillo?…

color

Cuando se pulsa el botón COLOR se envía a todos el mensaje ‘color’. El gato recibirá tal orden y:

color_gato

Esta instrucción hace que cambie de color cada vez que se reciba el mensaje ‘color’, es decir, cada vez que se pulse el botón color.

COMER

De la misma manera que en los casos anteriores, al presionar el botón COMER se envía a todos el mensaje ‘comer’.

comer

Este mensaje lo escuchan dos objetos:

  • El plato de fruta, al recibir el mensaje se muestra. Además, se ha habitado el movimiento del mismo a través de las teclas. El objetivo es llevarle la comida al gato para darle de comer.

comida

  • Por su parte, el gato,al recibir el mismo mensaje estará atento y, en cuanto le llevemos el plato de comida,  en tres segundos, se la comerá y la hará desaparecer. Parece que le ha gustado  mucho. Todo esto lo conseguimos usando la condición “Si tocando plato de fruta” en un bucle infinito.

gato_comer

JUGAR

A nuestro gatico también le gusta divertirse así que le hemos programado el juego del pilla-pilla. El objetivo del gato es alcanzar a su amigo y la manera de atraparlo es manejar su movimiento con el puntero del ratón.

Al presionar el botón JUGAR se envía a todos el mensaje ‘jugar’. A parte se fija el valor de la variable ‘juego’ a ’1′. Con el valor de esta variable vamos a modificar el comportamiento del gato de Scratch.

JUGAR

Sólo en el caso de que la variable ‘juego’ sea igual a ’1′ , es decir, cuando estamos jugando, el gato se desplazará hacia la posición del ratón.

gato_JUGAR

Dos son los elementos que escuchan el mensaje ‘jugar’:

  •  El botón de PARAR, el cual se mostrará sólo durante el juego y cuya función es poder parar de jugar en el momento deseado.
  •  El amigo del gato cuyo código define su movimiento aleatorio (tanto en tiempo como en espacio) por toda la pantalla.

amigo

Cuando el gato atrapa a su amigo a éste último le da por exclamar.

Por último, se muestra el código del botón PARAR, el cual mandará el mensaje ‘parar’ que hace que se esconda el propio botón, que se esconda el amigo y cambia el valor de la variable ‘juego’ para que el gato deje de perseguir el puntero del ratón.

En el gif aparece un ejemplo de interacción con nuestra mascota virtual.

mascota peque

Partes del ordenador

En las clases de informática no sólo aprendemos a programar los juegos del moda sino que también nos hacemos nuestros propias actividades educativas.

Uno de los últimos programas que hemos diseñado es una actividad con la que hemos aprendido a diferenciar las principales partes del ordenador y cómo se clasifican.

La idea es que un personaje nos vaya explicando y guiando a través de la actividad. Luego lo primero que vamos a hacer es elegir un fondo y el personaje deseado que va a hacer de presentador.

1

 Antes de seguir vamos a aclarar una cosilla importante: durante toda la actividad van a ir apareciendo y desapareciendo elementos. Esto lo vamos a controlar a través del paso de mensajes de unos objetos a otros. ¿Qué quiere decir esto? Pues es sencillo, un objeto puede “gritar” un mensaje a todos los demás elementos, pero sólo los que yo desee serán los que escuchen ese mensaje y realizarán las acciones asociadas al mismo.Por ejemplo: en una clase el profesor puede decir “Los que tengan deportivas id a buscar los balones”. Todos los alumnos han escuchado el mensaje pero sólo los que calcen deportivas se levantarán e irán en busca del material. Este tipo de comunicación se llama broadcast y consiste en que el emisor lanza el mensaje a todos los receptores, pero sólo algunos o uno o ninguno son los que lo escuchan. El ejemplo más representativo es la emisión de canales de televisión y de radio los cuales están continuamente emitiendo programas pero sólo la persona o personas que están interesados en un programa concreto de un  canal determinado son los que lo ven o escuchan. También se puede dar el caso de que nadie vea la televisión o escuche la radio y, sin embargo, las emisoras siempre están emitiendo.

Una vez entendido esto vamos a programar al gatete: él se encargará de presentar la actividad e invitará a pulsar un botón, previamente creado, para continuarla.

gato1

La última instrucción amarilla es el mensaje ‘botón partes’. Todos los elementos del programa van a escuchar ese mensaje, pero sólo el botón verde va a ser el receptor del mismo. ¿Cómo hacemos que el botón escuche el mensaje del gato?

botón

Este es el código del botón verde. Como se puede observar, al iniciar el programa pulsando la bandera verde, el botón verde no aparece en la pantalla pues le hemos indicado que se esconda. Sin embargo, en cuanto recibe el mensaje ‘botón partes’ el botón se muestra.

Con el par de instrucciones: “Enviar a todos…” y “Al recibir…” conseguimos que haya comunicación entre los elementos del programa.

En la imagen se muestra cómo quedaría la pantalla al hacer aparecer al botón.

2

El siguiente mensaje de broadcast se envía al hacer click en el botón verde (instrucción “Al presionar…”). ¿Quiénes escuchan el mensaje ‘hw y sw’ enviado por el botón? Pues un par de objetos cuyo disfraz representan el hardware (parte física y mecánica del ordenador) y el software (parte lógica y de programas del mismo).

3

Según lo que hemos explicado antes, este par de elementos deberán escuchar el mensaje y, por tanto, tener en su código la instrucción Al recibir ‘hw y sw’ “, y así es:

hw

Este es el código al objeto cuyo disfraz representa al hardware. Como ocurría con el botón, al inicio este elemento no va aparecer en la pantalla, pero si lo hará al recibir el mensaje ‘hw y sw’. Además, éste a su vez, cuando se le pulse, enviará un mensaje ‘ex_hw’ que le indicará al gato que es el momento en el que debe iniciar la explicación de qué es el hardware del ordenador. Mientras el gato realiza la explicación el elemento espera 9 segundos para dar la orden de esconderse así mismo para mostrar los distintos elementos que componen el hardware de un ordenador.

A continuación, el código asociado a la explicación del gato acerca del hardware.

ex_hw

Tras la exposición del gatete de Scratch aparecerán en la pantalla todos los elementos que pertenecen al hardware de un ordenador.

4

Todos estos elementos han escuchado el mensaje Desaparecer y mostrar hw’. Como ejemplo mostramos el código del elemento teclado, pero todos y cada uno de ellos van a tener un código similar:

teclado_

Ahora es el momento de que el gato nos haga una descripción de cada una de las partes del ordenador. De la misma manera que antes, al presionar, por ejemplo, el objeto teclado, deseamos que el gato realice su explicación. Y la solución para realizar esto es la misma que llevamos usando a lo largo de toda esta práctica: el uso de mensajes. Así, el objeto teclado, al pulsarlo, envía a todos ‘ex_teclado’ y, por su parte, el gato al escucharlo realiza su explicación.

ex_teclado

De la misma manera habría que realizar este código para cada uno de los elementos de hardware y de software.

En el gif se muestra cómo sería más o menos la navegación por la actividad.

interfaz2

Presentando nuestros proyectos

 ¡¡¡Y siguen sorprendiéndonos estas jóvenes promesas de la invención!!!

Podemos asegurar que  alumnas mayores del colegio Tomás Bretón, en su segundo año de clases de robótica, son unas ingenieras en toda regla. Durante varias sesiones los alumnos de todos los cursos de primaria han realizado creaciones propias pasando por todas las fases del desarrollo de un proyecto de ingeniería:  tener una idea, documentarse, definir los requisitos, diseñar, implementar, validar, documentar lo realizado y comunicar lo creado.

Sigue leyendo

Juego: Flu-Flus insecticida

Continuamos con el desarrollo de sencillos videojuegos con los que asentamos, por una parte, las bases de la programación (uso de variables, de bucles, bloques de condición, definición de condiciones iniciales…) y, por otra, repasamos los conceptos matemáticos relacionados con la representación gráfica (la localización de objetos en el sistema cartesiano y la descripción de movimientos en el plano).

Sigue leyendo

Juego: Super Gato

En las clases de informática y programación de videojuegos hemos emulado un clásico juego: el Super Mario.

Y qué mejor protagonista que nuestro gato de Scratch. Hemos dado las pautas para realizar una versión simplificada del juego en la que el SuperGato va a tener que ir recogiendo monedas localizadas en distintas partes de la pantalla.

Sigue leyendo

Aprendiendo a programar

Después de haber tenido nuestra primera experiencia con el lenguaje de las órdenes, programando a un compañero para que llegase desde un punto a otro de la clase, y tras haber identificado los errores frecuentes que se suelen cometer a la hora de generar código, es el momento de abordar nuestro primer reto de programación:

simular en la pantalla del Scratch el comportamiento de los robots de limpieza

Sigue leyendo