0% encontró este documento útil (0 votos)
603 vistas260 páginas

Programación Educativa Con Scratch 3.0 - Aprende A Enseñar Programación Visual Con Ejemplos Prácticos (Spanish Edition)

Cargado por

segundo antonio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
603 vistas260 páginas

Programación Educativa Con Scratch 3.0 - Aprende A Enseñar Programación Visual Con Ejemplos Prácticos (Spanish Edition)

Cargado por

segundo antonio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 260

Dedicatoria

Le dedico esta obra a mi esposa Raquel. Es la persona que siempre me anima,


no desfallece y hace que todo lo que me propongo se haga realidad.

Agradecimientos

A mi familia que me han dejado robarles un tiempo que les debo. Raquel,
Guillem y Bernat os quiero.
A mis padres que con todas sus carencias me permitieron una educación.
Por su inspiración y el trabajo que realizan voluntariamente, al equipo
organizador de los Scratch Educator Meetups en Barcelona. Un fantástico
grupo de personas encabezado por Pau Nin, Pep Oliveras y Esther Gibert. En
especial a Pau por su increíble labor al frente del blog scratchcatala.com
A los scratchers PullJosh y WooHooBoy.
La Wiki de Scratch.
Algunas imágenes usadas en este libro las he obtenido de vecteezy.com
Índice
VERSIÓN 3.0
CAPÍTULO 1: DEFINICIÓN Y REGISTRO
CAPÍTULO 2: INTERFAZ Y BLOQUES
CAPÍTULO 3: PRIMEROS PASOS
CAPÍTULO 4: ESTRUCTURAS DE CONTROL Y PARALELISMO
CAPÍTULO 5: EL EDITOR DE DIBUJO
CAPÍTULO 6: EL SONIDO
CAPÍTULO 7: TRABAJO CON VARIABLES Y LISTAS
CAPÍTULO 8: LOS ALGORITMOS Y LAS ETAPAS DE RESOLUCIÓN
CAPÍTULO 9: ENVIAR Y RECIBIR MENSAJES
CAPÍTULO 10: LA GUERRA DE LOS CLONES
CAPÍTULO 11: CREA TUS PROPIOS BLOQUES
CAPÍTULO 12: SCROLL
CAPÍTULO 13: ROOM ESCAPE
CAPÍTULO 14: CONECTANDO CON EL MUNDO EXTERIOR
CAPÍTULO 15: UN POCO DE ELECTRÓNICA
CAPÍTULO 16: EJEMPLOS RELACIONADOS CON EL CURRÍCULO ESCOLAR BÁSICO
DESPEDIDA
Bienvenid@, si tienes este libro entre manos quizá sea porque ya has oído
hablar de Scratch y tengas muchas ganas de aprender. Me alegro si es así.
Tienes delante un libro con el que no necesitas ningún conocimiento de
programación previo para seguirlo. Tan sólo algo de habilidad con el ratón y
soltura para navegar por Internet.
Esta obra está dirigida a todas las personas que deseen aprender
programación visual por bloques y así poder transmitir este conocimiento a
jóvenes estudiantes trabajándolo en casa como padres y madres o en la
escuela como educadores y educadoras.
La programación visual por bloques es una alternativa a la programación
informática textual[1] que permite, sin conocimiento previo alguno, obtener
resultados rápidamente.
Ten por seguro que la juventud deberá tener pronto, si no las necesitan ya,
nociones de programación al desarrollar su carrera profesional. La
programación está llegando a todos los ámbitos laborales y empieza a ser una
competencia necesaria.
Les espera un futuro próximo en el que se van a crear puestos de trabajo que,
hoy en día no existen y muchos de los que ahora conocemos van a
desaparecer. La entrada, cada vez más incisiva, de las computadoras y los
robots en casi todos los ámbitos laborales, pone en el foque la necesidad de
una preparación en el campo de la programación.
Para las escuelas, la programación visual por bloques se convierte en una
oportunidad para ayudar a los estudiantes en el desarrollo de habilidades
mentales mediante el aprendizaje de la programación.
Los beneficios de la programación informática y el pensamiento
computacional son muchos. Aportan el uso de la lógica, del análisis y la
observación. Estimulan un pensamiento abstracto y aportan otra forma de
resolver problemas.
Los alumnos y las alumnas que trabajan con la programación, sobre todo si es
en grupo, acostumbran a no necesitar la asistencia de los formadores y las
formadoras ya que la buscan entre los compañeros y compañeras aportando
socialización y pertenencia.
Pero… ¿qué es la programación?
Los ordenadores, robots y otros equipos no saben hacer nada por sí solos,
tienes que decirles tú qué deben hacer, es decir, tienes que programarlos.
Un programa está compuesto por un conjunto de instrucciones organizadas y
relacionadas entre sí de una manera lógica que conducen a la resolución de
un reto, un problema o a las acciones que desees que haga el ordenador.
Las instrucciones deben escribirse en lo que se conoce como lenguajes de
programación y hay muchos. Unos de cierta complejidad que resuelven casos
complicados y otros de mayor sencillez que permiten hacer proyectos menos
ambiciosos, pero que ayudan a asentar las bases y estructuras comunes a
todos ellos.
El lenguaje de programación escogido para este libro es el Scratch, que fue
desarrollado por el MIT Media Lab[2].
Versión 3.0
Scratch va, hoy en día, por la versión 3.0. Eso significa que existen otras
versiones anteriores; por si ya las conoces, te comento algunas novedades:
> Se puede trabajar desde la tableta e incluso desde el móvil.
> El editor tiene un nuevo diseño y hay paneles que han cambiado de
sitio como el escenario, por ejemplo. Ahora la vista irá de izquierda a
derecha en una secuencia más lógica: la lista de bloques a la
izquierda, la zona de código en medio y el escenario a la derecha.
Además, se ha modificado el tono grisáceo por el blanco y los
bloques son un poco más grandes permitiendo un mejor uso en
dispositivos móviles.
> No se ha eliminado ningún bloque de la versión 2, pero sí que
algunos han cambiado un poco y otros se han trasladado a las
[Extensiones].
> Hay nuevos e interesantes bloques de sonido, lápiz o desplazamiento.
> Los editores de sonido y de dibujo han mejorado mucho dando
protagonismo al dibujo vectorial por encima del de mapa de bits.
> Con las extensiones está todo más organizado y amplía las
posibilidades de Scratch.
> La versión 3.0 dispone de muchos tutoriales muy elaborados y, cómo
ya es sabido, se van a añadir más en las próximas actualizaciones.
> En cuanto a la compatibilidad con versiones anteriores no va a haber
problema. Lo único es que con el editor de escritorio 2.0 no se
pueden abrir proyectos guardados en versión 3.0, pero si trabajas
online todo es compatible.
Capítulo 1: Definición y registro
¿Qué es la programación visual?
La programación visual te proporciona los comandos[3], estructuras[4],
interfaz[5] y demás elementos necesarios para desarrollar sencillas
aplicaciones en un entorno intuitivo y fácil de usar.
Con este tipo de programación obtienes rápidos resultados y afianzas
rápidamente la base que se utiliza en el resto de los lenguajes de
programación.
Existen diversos lenguajes de programación visual, la mayoría de ellos
destinados a un público infantil, pero otros se adecuan a una seria
introducción a la programación para estudiantes de bachillerato o
universidad.

¿Qué es Scratch?
Scratch es un lenguaje gratuito de programación visual en un entorno en línea
con opción de descarga para programar fuera de línea.
Una de las grandes virtudes de Scratch es que tiene una gran comunidad en
línea detrás. Todos los Scratchers comparten proyectos, reaprovechan otros y
hacen red.
Scratch te va a permitir imaginar y crear juegos, animaciones, historias
interactivas que pueden acompañar perfectamente a los otros ámbitos y
materias curriculares de los alumnos.
No puedes olvidar ScratchEd otra comunidad en línea para educadores en la
que compartir proyectos, preguntar, intercambiar recursos, conocer a más
profesionales de la educación y estar al día con las últimas noticias. Esta
comunidad la encuentras en la siguiente dirección web
http://scratched.gse.harvard.edu/

Comencemos
En este libro vas a trabajar con la versión en línea de Scratch. Para ello debes
dirigirte a esta dirección web https://scratch.mit.edu/

Esta es la portada del sitio web de Scratch.


La barra del menú principal te presenta las siguientes opciones:

De izquierda a derecha:
> Logo de Scratch: siempre te lleva a la página principal.
> Crear: te lleva al editor para empezar a programar, aunque no hayas
iniciado sesión. Eso sí, si no has iniciado sesión el proyecto no podrá
ser guardado en línea y sólo podrás descargarlo en tu ordenador.
> Explorar: te lleva al directorio de proyectos compartidos por todos los
usuarios de Scratch. Podrás buscar, mirar dentro de estos y
reinventarlos para aprovechar el trabajo hecho por otros compañeros
y compañeras. Es una manera estupenda de aprender más sobre
Scratch.
> Ideas: es la página de tutoriales para dar los primeros pasos en
Scratch. Estos tutoriales están muy bien hechos. Te recomiendo que,
cuando hayas avanzado un poco, te animes a mirarlos.
> Acerca de: es la página de créditos. Allí también encontrarás
información útil para profesionales y padres. Vale la pena.
> Buscador: busca entre los más de 62 millones de proyectos
compartidos, hoy en día, para que encuentres inspiración.
> Únete a Scratch: es la opción para registrarte como usuario.
> Iniciar sesión: para iniciar sesión si ya tienes un usuario Scratch.

El navegador va a escoger el idioma por ti. Si quieres cambiar a otro idioma


con el que te sientas mejor puedes ir al final de la página y cambiarlo:

Ahora vas a crear tu cuenta Scratch para, pronto, convertirte en Scratcher.


Sí, hago bien al decir “pronto”. Por el simple hecho de registrarte no se te
“concede” el rango de Scratcher, pues un Scratcher es aquel usuario o
usuaria de Scratch que lleva ya un tiempo en la comunidad, que comparte
proyectos y ha publicado comentarios, en definitiva, para poder proclamar
con propiedad que eres un Scratcher debes socializar.
Vas a crear una cuenta individual, pero deja que te hable de las diferentes
cuentas de Scratch.
Cuentas de profesor
Scratch pone a disposición de profesores/as y educadores/as las cuentas de
profesor. Éstas añaden funciones adicionales a las cuentas individuales para
poder gestionar la participación del alumnado. Con ellas se pueden crear
cuentas de estudiante, organizar los proyectos de los alumnos y las alumnas
en estudios y supervisar sus comentarios.
Para solicitar una cuenta de profesor ve a https://scratch.mit.edu/educators/
y busca el formulario de solicitud. Rellénalo y deberás esperar un día parar
tener la cuenta. Esto es así porqué Scratch Team revisa manualmente las
solicitudes para verificar, de alguna manera, que quién lo ha creado se dedica
a la educación.
Tus datos no van a ser compartidos en ningún caso.
Un profesor o profesora puede crear varias clases. Estas clases tienen un
perfil público, es importante saberlo.
Te animo a que revises las limitaciones que tienen este tipo de cuentas, pero
es posible que éstas se vean modificadas con el tiempo.
Cuentas de estudiante
Las cuentas de estudiante no requieren direcciones de correo únicas,
confirmando tu dirección de correo bastará y será posible compartirla en
todas las cuentas de la clase.
Cuando acabe el curso, la página de perfil de la clase se ocultará y el
alumnado ya no se podrá volver a identificar, aunque los proyectos
continuarán visibles en la web. Podrás volver a abrir la clase, eso sí.
Una cosa para tener en cuenta es que, como docente, sólo podrás acceder a
los proyectos compartidos del alumnado. Deben compartir.
Permíteme un consejo. A veces se cae en el error de usar el nombre del aula o
del curso para crear las cuentas de estudiante, sin embargo, el alumnado
cambiará de curso y de aula al año siguiente y querrán mantener su cuenta
para crear proyectos nuevos o modificar los anteriores. El nombre de usuario
no corresponderá, entonces, con el aula o curso que en el que estén ahora.
La cuenta individual
Considero que estas cuentas van bien para un uso particular. Para un uso en
clase te recomiendo la cuenta de profesor.
Ve a la página principal de Scratch https://scratch.mit.edu/ y aprovecha
para guardarla en tus favoritas.
Haz clic en el enlace [Únete a Scratch] y completa los pasos del registro.
De la misma manera que las cuentas de profesor, si eres mamá o papá y
necesitas crear varias cuentas para tus hijos o hijas puedes usar tu misma
cuenta de correo electrónico para todas ellas, aunque sean individuales.
Paso 1
Escoge el nombre de usuario y la contraseña que debes introducir dos veces
para asegurarte que no cometes un error. Una vez completados haz clic en
[Siguiente]. El nombre de usuario no puede contener espacios.
Paso 2
Introduce el país. Están en inglés. Haz clic en el botón [Siguiente].
Paso 3
Introduce mes y año de nacimiento del usuario. Haz clic en el botón
[Siguiente].
Paso 4
Introduce el género. Haz clic en el botón [Siguiente].
Paso 5
En este paso debes informar de una dirección de correo electrónico. Haz clic
en el botón [Crea una cuenta].
Paso 6
Haz clic en el botón [Comenzar] y el navegador ya ha iniciado sesión por ti.
Confirmar la dirección de correo
Es necesario revisar la cuenta de correo facilitada en busca del mensaje que
confirma el registro. Ahí debes hacer clic en el botón de confirmación. Si no
lo haces, al usar Scratch te irá apareciendo continuamente un aviso
recordándote que lo debes hacer.
Si no encuentras el mensaje en la bandeja de entrada busca en otras bandejas
como la de [correo no deseado], no vaya a ser que haya caído allí. Con los
servidores de correo nunca se sabe. Ten en cuenta que el correo de
confirmación puede tardar, no es inmediato.
Iniciar sesión
Cuando uses Scratch online será necesario que inicies sesión si quieres
consultar o seguir trabajando con tus anteriores proyectos o si quieres que se
te guarden los nuevos.
Para ello escoge la opción de menú [Iniciar sesión] en la página principal de
Scratch.
Para no tener que recordar esta dirección te recomiendo que busques la
palabra scratch en Google y el primer resultado ya te lleva a la página
principal. Esto si no la tienes guardada ya en tus marcadores favoritos.
Bien, pues al hacer clic en la opción [Iniciar sesión] introduce el nombre de
usuario y la contraseña que usaste en el registro y haz clic en el botón blanco
de [Iniciar sesión].
Puedes hacer que el navegador te recuerde, pero no es recomendable si el
ordenador que usas es compartido.
Capítulo 2: Interfaz y bloques
Cientos de posibilidades
Ten por seguro que mi objetivo es no dejarme nada importante, aun así, debo
avisarte que no me detendré en todas y cada una de las opciones y variantes
que Scratch te brinda, son centenares.
Daré por supuesto que leerás este libro y, a la vez, tendrás las manos sobre el
teclado o el ratón practicando sobre la marcha. Es posible que en algún
momento veas un icono, una opción o un elemento que pienses que paso por
alto o que dejo atrás. Muchos de estos los explicaré más adelante y otros no
los llegaré a mencionar, en tal caso te pido disculpas, pero si lo hago es
porque creo que no es esencial o porque dejo en tus manos que lo investigues.
Scratch tiene tantas posibilidades que dejarlas todas reflejadas en este libro
no sería viable. Te animo a que lo pruebes todo, a que toques aquello que te
despierte curiosidad. Una premisa muy acorde con la programación es
aprender por error.

El menú de usuario
Nada más identificarte, ya sea porqué vengas del correo de confirmación o
porqué hayas iniciado sesión en el enlace [Iniciar sesión], te aparece tu menú
de usuario con este aspecto:

En él se recogen tres opciones que, en orden, son: buzón de mensajes, carpeta


[Mis cosas] y un desplegable con más opciones para cambiar el perfil,
configurar la cuenta o salir de la sesión.
Hablaré extensamente de la carpeta [Mis cosas], pero vaya por delante que
será ahí dónde se irán guardando todos tus proyectos.
Cabe decir que en la opción [Perfil] del desplegable bajo tu nombre de
usuario permite poner tu foto, describirte y ver tu historia, que ahora estará
muy vacía, pero que con el tiempo se irá enriqueciendo.
Finalmente, en la opción [Configuración de la cuenta] puedes cambiar la
contraseña, la dirección de correo, la ubicación o eliminar tu cuenta.

Crear un proyecto
Una buena práctica antes de crear un proyecto, aunque no imprescindible, es
iniciar tu sesión para que el autoguardado vaya salvando el progreso.
Para hacer un proyecto nuevo, también tienes dos opciones:
> Si estás en la página inicial de Scratch, con la opción de menú
[Crear].
> Si estás ya en el editor con un proyecto y necesitas crear otro, con la
opción de menú [Archivo > Nuevo].
En los ejemplos venideros, aunque no lo diga explícitamente, deberás crear
un proyecto nuevo para cada uno y asignarles un nombre que los identifique.
Puede ser que ahora el editor no esté en el idioma que deseas. Cosas de los
navegadores. Para cambiar el idioma del editor de proyectos, tanto del
entorno cómo de los bloques de programación debes ir al icono de la bola del
mundo que está arriba a la izquierda. Verás que se despliega una lista de
idiomas, elige el que más te guste.
Automáticamente se traduce toda la interfaz, incluso los bloques de
programación.
Posiblemente en tu primer proyecto se abra una ventana con un tutorial de
inicio en el centro, la puedes cerrar, ya hablaré de los tutoriales más adelante.

Guardar proyectos
Scratch posee un sistema de guardado continuo con lo que no te tienes que
preocupar de salvar los proyectos si te olvidas.
Sin embargo, puedes usar una de las siguientes opciones mientras realizas el
proyecto:
> La opción de menú [Archivo > Guardar Ahora].
> El enlace de arriba a la derecha cuando dice [Guardar ahora].
Posiblemente siempre encuentres que dice [Guardado], o que
simplemente no esté visible, señal de que Scratch lo ha hecho por ti.
En caso de que cerraras el navegador, te avisará de que los cambios no están
guardados y podrías volver a Scratch para guardarlos.

Compartir un proyecto. La comunidad Scratch


La comunidad Scratch la forman todas las personas que usan Scratch: los
niños y niñas, los y las profesores/as, las madres, los padres y demás personas
que están unidas bajo este lenguaje de programación visual.
Empezó allá por el año 2007 y a principios de 2019 está por encima de los 60
millones de usuarios registrados.
Una definición de lo que es la comunidad sería: un sitio dónde los usuarios
crean y comparten sus proyectos inspirados en sus propios intereses en un
ecosistema informal de aprendizaje.
Existen unas líneas guía de comportamiento que indican como debes actuar
en la comunidad Scratch.
A grandes rasgos, estas líneas vienen a decir que debes ser respetuoso,
constructivo, honesto, que no facilites información personal y que, sobre
todo, compartas los proyectos.
Aquí las encuentras al completo (en la parte inferior hay un selector de
idioma si las quieres leer en castellano).
https://scratch.mit.edu/community_guidelines
Yo te animo a compartir. Personalmente creo que es la gran virtud de
Scratch, la comunidad que hay detrás. De ella se aprende mucho, es por ello
por lo que se debe corresponder.
Busca el botón de compartir y úsalo mucho.
Una vez vayas creando proyectos los puedes clasificar en estudios.
Los estudios de Scratch
Los estudios de Scratch son una manera de organizar tus proyectos. Debes
estar identificado e ir a [Mis Cosas]. Recuerda que es el icono de la carpeta
de al lado del nombre de usuario arriba a la derecha.
Dentro verás una columna izquierda con unas clasificaciones ya creadas de
inicio. La de los proyectos compartidos, la de los no compartidos, mis
estudios y la papelera.
Dentro de [Mis Estudios] podrás crear tantos más como necesites. Está el
botón para ello.
Y una vez dentro del estudio puedes añadir los proyectos para clasificarlos.
Una particularidad: tan sólo puedes clasificar los proyectos compartidos.
Yo dejaría sin compartir los proyectos que no estén acabados, los que sí,
debes compartirlos para convertirte en un buen Scratcher.
Documenta en los comentarios cómo funciona y aquello que creas relevante,
así ayudas a los usuarios que jueguen a tu proyecto a saber usarlo.
Mis cosas
La página [Mis cosas] es el gestor de proyectos. Desde allí, como Scratcher
puedes controlar y ver diversos aspectos de tus proyectos y estudios. Los
proyectos pueden ser creados, compartidos, editados, descompartidos y
eliminados. Los estudios se pueden crear, eliminar y agregarles proyectos.
En la cabecera tienes los botones para crear proyectos y estudios. También
tienes el botón para ordenarlos según diferentes criterios: alfabético, los más
o menos vistos, etc.
Seguidamente tienes la lista de los proyectos con algo de información. En los
proyectos compartidos verás cuantas veces se han visto, cuantos comentarios,
cuantos likes, etc.

A la izquierda tienes una serie de pestañas con los proyectos compartidos y


los que no, tus estudios y la papelera.

La interfaz
Voy a describir todas las secciones de tu pantalla de trabajo.
No trates de memorizar la teoría, con la práctica todo irá encajando y se te
hará más familiar. Ahora toca ir poniendo nombre a las cosas que ves.
1. Menú de opciones: el logo de Scratch que te lleva a la página de
inicio, seleccionar el idioma, menú [Archivo] guardar y abrir
proyectos, menú [Editar] para el típico deshacer y activar el modo
turbo y, finalmente, el botón de los tutoriales.
2. Escenario: dónde se va a desarrollar la acción de tus proyectos.
3. Lista de bloques: lista completa de instrucciones (bloques de
programación). Puedes desplazarte de arriba abajo, está la lista
completa.
4. Área de trabajo: aquí arrastras los bloques para construir tus
programas. Esta área se agranda en caso de necesidad. Si el área se
hace muy grande es fácil desplazarse por ella si arrastras desde una
zona blanca donde no haya nada.
5. Panel de categorías de bloques: los bloques están organizados por
categorías que tienen un color propio. Haciendo clic en el color de
la categoría de la paleta, la lista de bloques se moverá al primer
bloque de esta. Te describiré las categorías en la siguiente sección.
6. Panel de objetos: una lista de iconos con los personajes y objetos
que estás utilizando en tu proyecto.
7. Panel de propiedades del objeto: es un panel con la información del
objeto que tienes seleccionado en ese momento. Informa del
nombre, posición, estado de visibilidad, tamaño y dirección. Son
propiedades que se pueden cambiar en todo momento.
8. Panel de escenario: se muestran los iconos de los fondos que
decoran el escenario. El escenario puede tener varios fondos que los
puedes cambiar con bloques de programación destinados a ello.
9. Botones de iniciar y parar: es habitual que los programas se inicien
con el botón de la bandera verde y se paren, en el momento que lo
necesites, con el botón del hexágono rojo.
10. Botones de pantalla completa y de distribución de paneles.
11. Botones de zoom: acercan y alejan el área de programa. Útil cuándo
tienes programas muy extensos.
12. Botón de añadir objeto: permite añadir un personaje nuevo al
proyecto de la galería de personajes, dibujarlo tú mismo o cargarlo
de un fichero que tengas guardado.
13. Botón de añadir fondo: añade un fondo nuevo al escenario de la
galería con la misma idea que el botón de los objetos: puedes coger
el fondo de una galería, crearlo o subirlo des del ordenador.
14. Botón de extensiones: te permite añadir una nueva categoría de
bloques a la paleta básica. Las extensiones te permitirán hacer
programas más complejos e incluso conectar con elementos
externos. Tienes extensiones para música, pintar, robótica con
LEGO WeDo, LEGO Mindstorms, Makey y micro:bit, sensor de
vídeo, convertir texto a voz, traductor y, seguramente, muchos otros
que se añadirán con el tiempo.
15. El personaje seleccionado en el escenario.
16. Pestañas de código (bloques), disfraces y sonidos:
a. Código (bloques): ya vista con la lista de bloques de
programación.
b. Disfraces: los objetos pueden cambiar su apariencia con los
disfraces. Se les puede poner nombre, editar, crear y borrar.
Son muy usados para simular movimiento. Esta pestaña
también te servirá para mantener los fondos del escritorio de
la misma manera que los disfraces de los personajes.
c. Sonidos: tanto los objetos cómo el fondo puede tener sonidos
asociados para hacerlos sonar cuándo desees mediante los
bloques destinados a ello. En esta pestaña se les puede poner
nombre, editar, crear y borrar igual que los disfraces.
17. El nombre del proyecto: lo puedes cambiar a tu gusto, de hecho, es
muy recomendable poner nombres descriptivos a cada proyecto. En
cuánto lo cambies y des a la tecla Intro ya quedará guardado.
18. El botón de compartir: ya he mencionado que lo maravilloso de
Scratch es compartir los proyectos acabados. Así los pones a
disposición del resto de usuarios que pueden enriquecerse con tus
creaciones y aprender de ellas.
19. Ir a la página del proyecto: puedes describir el proyecto e indicar
algunas instrucciones para informar al resto de usuarios cómo
funciona. Sé amable y completa estos datos, ayudarás a los demás.
Una vez allí puedes volver al editor con el botón [Ver dentro].
20. El icono de la carpeta [Mis Cosas].
21. Tu nombre de usuario con un menú desplegable para ir al perfil o
realizar cambios en tu cuenta.
22. La mochila: ya la explicaré con más detalle, pero que sepas que
sirve para guardar programas, objetos, sonidos, etc. i reutilizarlos
en otros proyectos.

El escenario
El escenario es el lugar donde va a ocurrir la acción de tu proyecto; donde se
van a mover los personajes de tus historias o donde va a estar el campo de
batalla de tus juegos.
Dimensiones y coordenadas
El escenario mide 480 píxeles de ancho por 360 píxeles de alto.
El centro del eje de coordenadas está en el mismo centro de la pantalla, allí
está el punto 0,0.
Con ello, en la esquina superior derecha está el punto 240,180 y en la esquina
inferior izquierda está el punto -240,-180.
Al trabajar con movimiento de personajes debes ya empezar a interiorizar que
para moverse a la izquierda o hacia abajo hay que restar y para ir a derecha o
arriba hay que sumar. ¿Pero sumar qué? Pues sumar píxeles a las
coordenadas X e Y de cada personaje.
Giros y direcciones
Acostumbrarás a [apuntar en] una dirección y seguidamente mover un objeto,
o bien, girar unos grados a partir de la dirección actual.

Scratch tiene costumbre de usar valores negativos para direcciones a la


izquierda, aunque sirven los valores absolutos que te muestro en la otra
imagen.
El bloque de [apuntar en]

Las direcciones en valores absolutos y negativos.

El botón de añadir
En varios paneles de la interfaz de Scratch te vas a encontrar botones que
sirven para añadir elementos al proyecto.
Puedes añadir objetos, disfraces, fondos de escenario y sonidos.
Cómo la forma de añadir cualquiera de estos elementos es similar, si te
parece, explico el funcionamiento general para que ya tengas conocimiento
cuando te haga falta.
Posiblemente me repita más adelante con esto, pero no está de más.
Los botones son:

Botón de añadir objetos: está en el panel de objetos, abajo a la derecha.

Botón de añadir un disfraz: aparece abajo a la


izquierda cuando tienes un objeto seleccionado y cambias a la pestaña
[Disfraces], al lado de la pestaña [Código].
Fíjate que en este caso hay una opción más en el desplegable, sirve para hacer
una foto con la cámara de tu portátil.
Botón de añadir un fondo al escenario: lo
encontrarás más a la derecha todavía, en el panel del escenario.

Botón de añadir un fondo al escenario: un segundo botón de añadir fondos al


escenario aparece en la pestaña [Fondos] si tienes el escenario seleccionado;
en este caso está abajo a la izquierda de la pantalla.
Como en un caso anterior en este caso está la
opción de hacer una foto.

Botón de añadir un sonido: aparece cuando haces clic en la pestaña [Sonidos]


y tienes seleccionado cualquier objeto o el escenario mismo.
Las opciones
En cualquiera de los casos anteriores, al pasar el ratón por encima aparece un
menú de opciones hacia arriba.
Las opciones son, de abajo a arriba:
> La lupa: permite escoger un elemento de una galería de elementos que
Scratch pone a nuestra disposición.
> El pincel o el micrófono, según el caso: es la opción que permite crear
desde cero. Te lleva a un editor gráfico para dibujar en los casos de
objetos, disfraces o fondos. Y te lleva a un grabador/editor de
sonidos en el caso de los sonidos.
> La estrella: es el botón “sorpresa” hace que Scratch escoja por ti.
Colocará un objeto escogido al azar.
> La flecha arriba: es el botón de cargar des del ordenador. Permite
subir un fichero gráfico o de sonido que tengas guardado en el
ordenador.
> La cámara de fotos: sólo aparece en dos opciones. Activa la cámara
que tengas conectada y hace una foto para añadirla al proyecto. Si
tienes ordenador portátil es más fácil porqué tiene la cámara
integrada.
Bien, pues te invito a que pruebes estas opciones y te familiarices con ellas
para añadir elementos nuevos a tus proyectos e ir progresando.
Más adelante también mencionaré estos botones y repasaré su función.
Dedicaré un capítulo entero al editor de dibujo para que tengas soltura a la
hora de crear personajes, disfraces y fondos partiendo de un lienzo en blanco.
También detallaré el uso del editor de sonidos porqué en la versión 3 de
Scratch está muy logrado.
Capítulo 3: Primeros pasos
En el capítulo anterior viste cómo crear un proyecto, el aspecto de la interfaz
de trabajo y algo del escenario. Ahora empiezas a programar.

Uso de los bloques de programación


Con el proyecto creado ya tienes un personaje en tu escenario, es el simpático
gato que aparece en pantalla.
Fíjate en la lista de bloques, a la izquierda, y asegúrate de que tienes los de
movimiento a la vista. Si no es así haz clic en la categoría [Movimiento] del
panel de categorías.
Si ahora haces clic (sin arrastrarlo) en el bloque [mover 10 pasos] puedes
comprobar que a cada clic el gato avanza su posición un poco.
No parece práctico, pero sí puede serlo si quieres conocer el resultado de
ejecutar un bloque antes de incorporarlo en un programa; o para ejecutarlo a
consciencia si tenerlo que usar en un programa.
Hecho esto puedes volver a colocar el gato en su posición arrastrándolo por el
escenario o bien en el panel de propiedades del objeto. En la figura siguiente
se ve que he indicado las posiciones X=0 e Y=0 para volverlo a situar en el
centro.

Ahora intenta resolver un problema:


Quieres hacer un programa en el que tu personaje se mueva hacia adelante,
maúlle, te salude y vuelva a su posición.
Arrastrar bloques
Lo básico, básico, es que para hacer programas debes arrastrar los bloques
desde la lista de bloques de la izquierda hacia el área de trabajo del centro de
la pantalla. Los puedes dejar en cualquier zona del área.
Para acceder rápidamente a los bloques de cada categoría haz clic sobre el
nombre de la categoría. La lista de bloques se posicionará en primer plano de
la lista.
Los bloques que, al arrastrarlos al área de trabajo, forman un programa,
deben encajar entre sí, de manera que cuando los acercas unos a otros aparece
una sombra gris que indica que si los sueltas ya encajarán:

Así, una vez encajados se ejecutarán todos uno detrás de otro empezando por
el primero.
Cuando colocas un bloque en el programa, si el parámetro[6] no tiene el valor
que necesitas es el momento de modificarlo haciendo clic encima i
cambiando el valor.
Verás que en el programa que vas a hacer el objeto debe moverse 100 pasos
en lugar de 10.
Pues ahí va el programa completo. Busca los bloques en la lista y arrástralos
al área de trabajo. Encájalos uno debajo de otro y modifica los parámetros
hasta que te quede igual que en la siguiente imagen. Te anoto al lado de cada
bloque la categoría dónde se encuentra, estás empezando y no quiero que
andes loco arriba y abajo buscando cada uno de ellos. De todas maneras, el
color de los bloques debe guiarte para saber en qué categoría están.
Acabados de encajar los bloques presiona la bandera verde que está encima
del escenario y comprueba que el programa funciona correctamente y
resuelve el caso que querías programar.
Quiero explicarte la razón de porqué el gato se mueve hacia la derecha y
luego a la izquierda y no lo hace, por ejemplo, arriba y abajo. La razón es
porqué todo objeto o personaje tiene una dirección a la que apunta. Cualquier
objeto que se añade al proyecto tiene la dirección 90º como dirección inicial
que se corresponde a la dirección derecha.

Así, en otros proyectos, si necesitas que un personaje se mueva en otra


dirección deberás usar el bloque de cambio de dirección antes del bloque de
movimiento.
Antes de seguir asegúrate que el proyecto tiene nombre y se guarde con él en
tus cosas. Recuerda que es la caja de texto del menú principal. Escribe el
nombre del proyecto, cómo idea puedes poner Saludo y dar a la tecla Intro.

Zoom y desplazamiento en el área de trabajo


Para trabajar más cómodamente puedes acercar o alejar la vista del área de
trabajo con estos botones que están abajo a la derecha, dentro del área:
El primer botón, el de arriba, acerca la vista con lo que los bloques se
hacen más grandes. El segundo la aleja y el tercero pone la vista por defecto.
También conviene recordar que te puedes desplazar por el área con las típicas
barras de desplazamiento vertical u horizontal o bien arrastrando el área a
partir de una zona libre dónde no haya bloques.
El área de trabajo es tan grande cómo necesites, no tiene fin, se va a agrandar
a medida que lo vayas necesitando.

Proyecto y programa
Introduzco estas palabras del título que voy a usar mucho a lo largo del libro
y así referirme con propiedad a ciertos conceptos.
Un programa necesita de un conjunto de bloques encajados uno detrás de otro
formando una secuencia. Los programas empiezan, siempre, con un bloque
de forma redondeada en su parte superior de manera que no se le puede
encajar otro por arriba.
Un proyecto es el conjunto de todos los programas que lo forman. Los
programas estarán creados en los objetos, personajes y escenario. Incluso
cada uno de estos objetos (en inglés sprites) podrá tener más de un programa
(en inglés script). Entonces, a partir de ahora hablare de proyecto (en inglés
project) como el conjunto de los programas que contiene. Estos proyectos se
pueden guardar y cargar.
Eliminar bloques
Si te equivocas y necesitas eliminar un bloque del programa tienes que
arrastrarlo de vuelta a la lista de bloques o hacer clic derecho y la opción
[Eliminar bloque].
Si usas la opción de clic derecho y [Eliminar bloque] éste se anula
individualmente y el resto del programa se vuelve a encajar automáticamente;
pero si usas la opción de arrastrar el bloque debes desencajar éste del resto de
programa antes de arrástralo a la lista para eliminarlo, si no, eliminarás todo
el resto de programa con él. Cuando arrastras un bloque se desencaja por
arriba, pero si tiene otros bloques debajo, también se los va a llevar. Así que,
para eliminar o mover un solo bloque no debe tener ningún otro encajado
arriba ni abajo.
Parece un inconveniente, pero puede ser una buena técnica para eliminar toda
una secuencia o mover partes enteras del programa de un sitio a otro.

Las categorías básicas de bloques


En esta sección voy a comentar la funcionalidad general de las categorías de
bloques de Scratch. No voy a comentar, todavía, qué hace cada bloque; eso lo
haré con los ejemplos prácticos.
Los bloques se organizan en categorías que corresponden a un color cada
una.
La organización por colores ayuda porque de otra manera te sería difícil
encontrar el bloque que necesitas de entre todos los que hay.
Te pongo ejemplos pequeñitos en cada categoría que puedes copiar tal cual y
así cogerás soltura. No te planteo el reto para pensarlo y programarlo, sino
que te doy el programa hecho, pues prefiero que te centres en el mecanismo
de construcción de este.
Siempre uso el siguiente bloque al empezar cada proyecto, lo encontrarás en
la categoría [Eventos].

Movimiento
Estos bloques de color azul oscuro te permiten controlar el movimiento del
objeto pudiéndolo mover a partir de su posición actual o a lo largo de los ejes
X e Y, rotar en un sentido u otro del reloj, cambiar dirección o rebotar.
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de movimiento], una
opción para hacerlo es escoger la opción [Nuevo proyecto] del menú
[Archivo].

Ejecútalo varias veces haciendo clic la bandera verde. La ejecución de este


ejemplo es diferente cada vez.
Apariencia
El color de esta categoría es el violeta. Los bloques violetas para controlar el
aspecto del objeto.
Tienes la posibilidad de cambiar el disfraz del objeto, que hable o piense,
aplicar efectos especiales, cambiar su tamaño, esconderlo o mostrarlo, etc.
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de apariencia]. Copia
este código. El bloque [esperar (1) segundo] lo he tomado prestado de la
categoría [Control] que todavía no has visto.
Los bloques azules sí que sabes ya dónde están. Son de la categoría
[Movimiento] que he comentado en el apartado anterior.
Recuerda que debes hacer clic en la bandera verde para que se inicie el
proyecto.
Sonido
De color fucsia. Permiten el control de los sonidos asociados a los objetos e
incluso al escenario. Sí, el escenario también puede emitir sonidos.
Puedes reproducir y parar los sonidos, hacer cambios en el tono y gestionar el
volumen.
Scratch incorpora una amplia galería de sonidos pregrabados de animales,
personas, instrumentos musicales, etc.
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de sonido]. Lo nuevo
en este proyecto es que he arrastrado un bloque informativo [volumen], de la
lista de bloques de sonido, dentro del bloque [decir]. Así ves que se pueden
usar bloques como parámetros.

Eventos
Son los bloques de color naranja claro y te van a ayudar a controlar acciones
que pasan comprobándolas en todo momento, como ejemplo: cuando se toca
una tecla, cuando se hace clic con el ratón o el paso del tiempo entre otras.
También están unos bloques importantes para la gestión de mensajes entre
objetos.
A estas acciones debes llamarlas eventos si quieres hablar con propiedad.
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de eventos]. Si tienes
un o una ayudante en casa o en el aula pídele que intente hacer clic sobre el
gato, tú cámbiale la posición presionando la tecla del espacio.
Son dos programas distintos programados en el mismo objeto. Debes crear
los dos, uno al lado del otro (o uno debajo del otro, como prefieras).
Control
Los programas tienen un flujo de ejecución siempre secuencial, es decir, los
bloques se ejecutan uno detrás de otro en el orden en el que los hayas
programado.
Este flujo secuencial se puede modificar y controlar con estructuras
repetitivas o condicionales.
Las estructuras repetitivas son bloques que engloban a otros y permiten que,
los bloques interiores, se repitan un cierto número de veces. Incluso que se
repitan para siempre.
Las estructuras condicionales son bloques que te permiten comprobar una
condición y, en función del resultado de esa comprobación ejecutar o no los
bloques que contienen.
Esta categoría tiene el color naranja medio y contiene las estructuras que he
comentado y la gestión de clones de objetos.
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de control].

Otra versión y te quedas con la que más te guste.


Haz clic en la bandera verde para que se ejecute el programa.
Sensores
Los sensores te permiten detectar magnitudes. En la vida real los encuentras
por todas partes: termómetros, sensores de luz, de humedad, humo, etc.
En Scratch puedes detectar acciones como:
> Cuando se toca un objeto o un color.
> Medir distancias.
> Preguntar información por pantalla.
> La posición del ratón.
> Cuando se toca una tecla.
Estos bloques son los de color turquesa.
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de sensores].
En este ejemplo debo comentarte una cosa que, hasta ahora, no ha sido
necesaria. Algunos de los bloques que has usado hasta ahora tenían
parámetros, como el número de pasos a mover, que podían ser cambiados
borrando el valor por defecto y escribiendo el deseado.
Bien, otros bloques también tienen parámetros, pero no pueden cambiarse
escribiendo, sino que se deben escoger de una lista desplegable. Hasta ahora
no ha sido necesario porqué las opciones que has necesitado eran las primeras
de la lista y no se debía cambiar nada.
En el siguiente ejemplo sí va a hacer falta escoger un valor diferente en una
lista. Concretamente:

Este bloque necesita un parámetro para indicar si lo que se debe comprobar


es si se toca el puntero del ratón o el borde de la pantalla. Son las dos únicas
opciones que tiene como parámetro este bloque. Por defecto el parámetro
indica [puntero del ratón] y en el ejemplo vas a necesitar indicar [borde]. El
cambio es sencillo: se hace clic sobre el parámetro para que muestre la lista
completa y se escoge el valor deseado con otro clic.

Puedes jugar a que el gato corra más y saber lo que tarda. Cámbiale el valor
del parámetro del bloque [mover (1) pasos]; al poner un valor más alto el
gato correrá más.
Haz clic en la bandera verde para que el gato empiece la carrera.
Operadores
Los bloques de esta categoría son de color verde y te permiten hacer
operaciones de cuatro tipos: matemáticas, comparativas, lógicas y de cadenas
de texto. Las matemáticas devuelven un resultado numérico. Las
comparativas y lógicas se usan habitualmente en estructuras condicionales y
repetitivas ya que sólo pueden devolver el valor [verdadero] o el valor [falso].
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de operadores].
En este caso es muy importante que te fijes en qué bloques van dentro de
otros, si no lo copias exacto, no funcionará de la forma en que yo lo planteo.
Es parte fundamental de la programación deducir qué bloques van dentro de
las estructuras repetitivas y condicionales; y qué bloques van fuera.
En este ejemplo hago un control de edad para poder jugar. Prueba de
introducir un valor menor de 18 y, en otra ejecución, otro valor mayor. Así
podrás deducir el propósito del programa.

Variables
Son los bloques de color naranja fuerte.
Formalmente, las variables son espacios de memoria que te permiten
almacenar datos que puedes usar a lo largo de tu proyecto.
Las variables son un binomio nombre-valor. Éstas deben tener un nombre
que las identifiquen y un valor que almacenar. El valor puede ser un texto o
un número. Scratch ya asigna el tipo a la variable a diferencia de otros
lenguajes dónde es obligatorio especificar el tipo en el momento de crearlas.
Al empezar cada proyecto de Scratch ya tienes una variable creada con el
nombre [Mi variable].
Puedes crear tantas variables como necesites en tu proyecto.
Es importante saber que los datos almacenados en la ejecución del proyecto
se pierden, se borran de la memoria, cuando cierras Scratch.
Un uso típico de las variables podría ser:
> Almacenar la puntuación en un juego.
> Guardar el número de vueltas actuales en un juego de coches.
> Guardar el resultado de una operación matemática para su uso
posterior en otro bloque.
> Establecer y guardar el nombre del personaje.
> Establecer y almacenar el ángulo de tiro de un arco.
En Scratch existe otra estructura con la misma función que las variables, las
listas.
Las listas son colecciones de variables guardadas en orden dentro de la
misma estructura.
Esta estructura de lista también tiene un nombre que la identifica, como las
variables, pero, además, tiene un índice. El índice indica una posición dentro
de la lista.
1 2 3 4
Lista de la
Patatas Galletas Agua Pan
compra

En este gráfico se muestra la lista de nombre [Lista de la compra] y contiene


cuatro elementos y las posiciones de cada uno de ellos.
Con los bloques de las variables y las listas puedes establecer o cambiar los
valores que almacenan.
Crea un nuevo proyecto y ponle el nombre de [Ejemplo de variables].

Para crear las variables [núm 1] y [núm 2] usa el primer botón de la categoría
[Crear una variable]. Para usarlas arrástralas, una vez creadas, des de la lista
de bloques al programa.
Mis bloques
Es la sección de color rojo.
Scratch te da la posibilidad de definir tus propios bloques asignándoles un
nombre que los identifique.
Estos bloques personalizados son utilizados con el propósito de almacenar
partes de programa que son repetitivos a lo largo del proyecto. Se definen y
se usan allí donde son necesarios.
Esta técnica hace que se reduzca el número de bloques estándar de tu
proyecto ya que aquellos repetitivos los tienes programados una sola vez bajo
una definición.
Imagina esta premisa; en un juego de fútbol cada vez que un jugador marca
un gol debe hacer la celebración. Esta celebración consta de una carrera, un
salto, un movimiento de brazos y gritar una expresión.
Tienes que programar los bloques que realicen esas acciones para cada uno
de los jugadores del juego, pero hay 22 jugadores.
Un buen estilo de programación consistiría en definir un bloque
personalizado con el nombre [Celebración] y dentro programar, una sola vez,
los bloques necesarios para realizarla.
Entonces, en el programa de cada jugador añade el bloque personalizado en
lugar de repetir todos los bloques estándar cada vez.
Parámetros
Es difícil encontrarte en situaciones en que un bloque personalizado deba
funcionar exactamente igual para diferentes objetos. Es habitual que para
cada uno de ellos sea necesario aplicar una pequeña variante.
Eso lo puedes conseguir agregando un parámetro en la definición del bloque
personalizado.
Con ello cada vez que añades el bloque en el objeto le indicas esa pequeña
variación, que se le pasa al parámetro.
Intento usar el ejemplo anterior. Supón ahora que en función del jugador
tienes que cambiar la expresión que grita.
Siendo así define un parámetro de nombre [Expresión] que será usado como
si fuera una variable dentro del bloque.

Así cuando programes el jugador usa bloques como éstos:

Crea un nuevo proyecto y ponle el nombre de [Ejemplo de mis bloques].


Ve a la categoría [Mis bloques] y haz clic al botón [Crear un bloque para
definirlo]

Para poder definir el parámetro [Altura] se debe escoger la opción [Añadir


una entrada] y escribir el identificador del parámetro. Es el ejemplo escogí
“Altura”.
Ahora se programa el bloque.
Para usar el parámetro [Altura] dentro del bloque [dar a …] se debe arrastrar
desde la definición:

Te recuerdo lo dicho anteriormente: estás trabajando pequeños ejemplos para


que cojas soltura a la hora de construir programas sin centrarnos en lo que
significan. Lo interesante es que construyas el programa y veas que funciona.
El significado y uso de los bloques y funcionalidades lo explico con detalle
en los siguientes capítulos.

Los tutoriales y las Scratch Cards


Seguro que en tus primeros pasos vas a necesitar ayuda para lleva a cabo tus
ideas y proyectos. Por eso tienes este libro entre las manos.
Scratch te da materiales para que los inicios de tu andadura en la
programación visual sean más llevaderos.
Uno de estos materiales son los tutoriales. Puedes acceder a ellos en todo
momento: si estás en la página inicial de Scratch tienes el botón [Ideas] y si
estás en el editor, a medias de un proyecto, tienes los tutoriales en el botón
del mismo nombre en la barra de herramientas de arriba. Te comento el tema
considerando que los usas en el editor. He hecho el clic en [Tutoriales]:

Tienes, arriba, el botón [Atrás] para volver.


Tienes un buscador y un filtro de categorías para encontrar antes lo que
necesites.
Imagina que tienes en mente controlar el movimiento de un personaje con las
teclas de las flechas. Pues si buscas “flecha” en el buscador de tutoriales
tienes un tutorial para ello.
Una vez encontrado haz clic y aparece la ventana del tutorial.

Los tutoriales suelen constar de un vídeo y, complementariamente, de unas


páginas animadas explicando cada parte.
El audio es en inglés, pero puedes ver los subtítulos en castellano.

Con el botón central inicias el vídeo y tienes botones de flecha en los laterales
para ir a las otras páginas.
Te aconsejo que des un vistazo a todos los que puedas.
Si eres profe, mamá o papá y estas con los y las peques programando
enséñales a llegar hasta los tutoriales. Aprenden muy rápido.
Otro recurso son las Scratch Cards. Las Scratch Cards son tarjetas
preparadas para ser impresas y aprender pequeñas funcionalidades al estilo de
un tutorial, de forma guiada.
Son muy útiles para los peques, te recomiendo imprimirlas y recortarlas.
En principio las has de encontrar aquí https://scratch.mit.edu/info/cards,
pero búscalas en tu idioma preferido. Personas que las traduce y adapta de
forma altruista.

Los bloques según su forma


Bloques apilables
Tienen una forma dentada por la izquierda tanto arriba cómo abajo. Ello
indica que puedes apilar bloques arriba, para que se ejecuten antes, o abajo,
para que se ejecuten después.
Son los bloques de las instrucciones principales. Es la forma de bloque más
común.

Bloques sombrero
Los bloques sombrero están diseñados para iniciar un programa. Esta
característica los hace esenciales para construir proyectos. Los puedes
encontrar en varias categorías.
Son importantes debido a que Scratch utiliza una programación por eventos.
El proyecto espera que pase alguna acción para que se ejecute el programa.
No se pueden encajar otros bloques por arriba, por ello sólo pueden estar al
principio de un programa. Por esa razón son redondeados en su parte
superior.
En casi todos los ejemplos anteriores has usado el bloque [al hacer clic en
bandera verde] como bloque inicial del programa. De esta manera tu
personaje no hacía nada hasta que ejecutabas esa orden. Entonces se ha
activado el evento y ha ejecutado las instrucciones que tenía acopladas a
continuación.
Ejemplos:

Ahora no toca explicar el significado de cada ejemplo, toca fijarte en la forma


que tienen.
Prepara este otro programa en un proyecto nuevo de nombre [Cuadrado
secuencial].
Vas a necesitar la extensión de LÁPIZ[7]. Te va a añadir un nuevo conjunto de
bloques a la lista básica.
El programa va a hacer que tu simpático gato dibuje un cuadrado en la
pantalla.
He partido el programa por temas de espacio, pero para que funcione tienes
que encajar la parte derecha debajo de la parte izquierda.
Bloques C

Toman su nombre de la forma que


tienen.
Son bloques “envolventes” que contienen otros bloques en su interior. Todos
están en la categoría de control.
Uno de ellos, se podría decir que tiene forma
de E, pero funciona igual, es como si tuviera dos C pegadas, es el [si –
entonces – sino].

Son bloques usados para las estructuras


repetitivas y condicionales que modifican el flujo secuencial del programa.
Ve a cambiar el programa añadiendo una estructura repetitiva y comprueba
que obtienes el mismo resultado con un programa más elegante y entendible.
Eliminando bloques, corrige el programa anterior.
Revisando el último ejemplo puedes darte cuenta de que en la parte final se
repiten en cuatro ocasiones los bloques:
[mover 100 pasos]
[girar 90 grados]
[esperar 1 segundo]

Debería realizar la misma tarea sin diferencia alguna.


Un bloque repetitivo muy usado es el [por siempre], lo verás con detalle y
llegarás a usarlo muchísimo.
Bloques lógicos
Las estructuras lógicas y algunas repetitivas necesitan de una condición para
ejecutarse, es decir, se debe comprobar y cumplir esa condición para que los
bloques que contiene la estructura se ejecuten.
El resultado de las condiciones siempre son valores lógicos. Sólo hay dos
valores lógicos posibles: verdadero y falso. Por tanto, cuando un bloque
lógico se evalúe sólo puede devolver uno de estos dos resultados.
Tienen forma hexagonal y sólo se pueden encajar en los “huecos” interiores
de las estructuras repetitivas y condicionales.
No hacen nada por sí solos.
Los encuentras en las categorías de sensores y operadores.
Ejemplos:

Bloques informadores
Son los bloques que guardan valores. Almacenan valores numéricos o de
texto.
Tienen forma redondeada y sólo pueden ir encajados en bloques que
contienen parámetros redondeados. Tampoco funcionan por sí solos.
Están por todas las categorías.
Bloques de tapa
Estos bloques terminan los programas. Es posible encajar bloques en su parte
superior, pero no se pueden encajar por el inferior porqué tienen el fondo
plano. Siempre serán los últimos bloques de un programa.
Hay muy poquitos y están en la categoría control.

Aquí te pongo otro ejemplo pequeñito pero que tiene de todo. Bloques de
sombrero, apilables, C, lógicos, informadores y de tapa. El bloque [por
siempre] es un bloque C y a su vez de tapa, no puedes acoplar ningún otro en
su parte inferior.
Capítulo 4: Estructuras de control y
paralelismo
Vas a afianzar el conocimiento de los bloques C y bloques lógicos.

Las estructuras condicionales


Una de las premisas de la programación es que las instrucciones (los bloques)
se ejecutan de principio a fin y secuencialmente, es decir, en orden y una
detrás de otra sin excepción.
Pero ya en los primeros programas que hagas te encontrarás con la necesidad
de que eso no sea así. Necesitarás que algunas partes del programa se
ejecuten y otras partes no en función de que se cumpla o no alguna condición.
Si no fuera así tus programas serían muy simples y no podrían resolver
cuestiones complejas.
Quizá ahora te suene a chino, no te preocupes, con las prácticas asentarás
conceptos. Primero la teoría y luego la práctica.
Estructura [si-entonces]
La primera estructura que estudiarás será la [si-entonces]. Esta estructura te
ayudará a resolver la necesidad de que un bloque se deba ejecutar unas veces
sí y otras veces no.
Funciona con una expresión lógica, es decir, una expresión que al evaluarse
sólo puede retornar uno de estos valores: verdadero o falso.
Esta expresión se incrusta en la estructura [si-entonces] de manera que si el
resultado al evaluarse es [verdadero] se ejecutaran los bloques que contenga
la estructura, si el resultado de la expresión es [falso] entonces no se
ejecutaran y el programa seguirá con el bloque que sigue debajo.
Enseguida te muestro unos ejemplos, antes necesitas saber cómo construir la
expresión que se va a evaluar.

Estos bloques son una muestra del tipo de bloques que devuelven un valor
lógico, es decir, verdadero o falso.
Operadores booleanos
Estas expresiones se usan en bloques lógicos y son aquellas que tienen un
operador booleano (un signo comparativo):

Estos bloques significan, de izquierda a derecha: menor que, igual, mayor


que y diferente.
Para comprobar que alguna cosa es diferente de otra no existe un bloque
propio, pero lo puedes construir, como has visto en el ejemplo, con un bloque
[no] que dentro tiene el bloque del igual, entendiendo que [no verdadero] =
[falso].
Operadores booleanos complejos
Existen otros operadores que unen operaciones booleanas. Son: Y, O y NO.
A estas operaciones se las conoce, en matemáticas, cómo álgebra de Boole.
Son operaciones entre valores verdadero y falso.
Debes entender qué resultados dan cada uno de ellos según el álgebra de
Boole:
Ahora te presento todas las tablas de resultados, pero si lo intento escribir en
una frase sería:
> Si un operando es [verdadero] y el otro operando es [verdadero] la
operación Y entre ellos da como resultado [verdadero].
> Si un operando es [verdadero] y el otro operando es [falso] la
operación Y entre ellos da como resultado [falso].
Bien, pues lo pongo en una tabla que representa el operador y los valores de
un operando en las filas y los valores del otro operando en las columnas. El
cruce de éstos es el resultado.

Operador Y Verdadero Falso


Verdadero Verdadero Falso
Falso Falso Falso
Operador O Verdadero Falso
Verdadero Verdadero Verdadero
Falso Verdadero Falso

Operador NO *
Verdadero Falso
Falso Verdadero
* Date cuenta de que el “operador NO” sólo necesita un operando.
Sigo dónde lo dejé antes, estaba hablando de la estructura [si-entonces] y
tenía pendiente poner unos ejemplos.
No son programas completos tan sólo te sirven para ilustrar el
funcionamiento de los operadores booleanos y deducir lo que van a hacer.

En el primer programa el bloque [decir] sólo se ejecutará si el valor de la


variable [Clave secreta] coincide con [3562] en otro caso no se ejecutará y
seguirá con el siguiente bloque que hubiera debajo.
En el segundo programa el bloque [decir] sólo se ejecutará en caso de que el
resultado de la comparación [mayor que] resulte verdadera. Lo primero que
hará el programa es sumar [tu dinero] con [mi dinero] y ese resultado lo
comparará con la variable [precio]: si es mayor ejecutará el bloque [decir] y
en cualquier otro caso no lo ejecutará y seguirá con el siguiente bloque.
El tercer y último programa usa el operador booleano [Y]. Si repasas las
tablas anteriores verás que el operador [Y] sólo da como resultado
[verdadero] si los dos operandos son verdaderos, así que, deben cumplirse las
dos condiciones simples para que se ejecute el bloque [decir]. Por tanto, la
variable [Estás disponible] debe valer [SÍ] y la variable [Hace sol] también
debe valer [Sí] para que se ejecute el bloque interior.
Estructura [si-entonces-sino]
Voy con un programa completo de ejemplo.

Cuidado, usa una estructura condicional con forma de “E”, es decir,


comprueba una condición: si es cierta se ejecutan los bloques del primer
tramo y, en caso contrario, se ejecutan los bloques del segundo tramo.
Date cuenta de que estoy usando un bloque informativo [respuesta]. Este
bloque almacena el valor de la respuesta a la pregunta que se hace con el
bloque [preguntar y esperar].
Para que no quede ninguna duda a nadie: la estructura [si-entonces-sino] hace
que se ejecute los bloques de la parte del [entonces] si se cumple la condición
de la expresión usada y en cualquier otro caso, se ejecutan los bloques de la
parte del [sino].
Por lo tanto, o se ejecutan unos o se ejecutan los otros, nunca se ejecutarán
las dos partes ni tampoco quedará sin ejecutar ninguna.
Anidar estructuras condicionales.
En otros casos necesitas comprobar más de las dos posibilidades que te
brinda el [si-entonces-sino].
Pues debes “anidar” estructuras condicionales, es decir, usar unas dentro de
las otras para así poder comprobar más de dos supuestos.
Voy a cambiar el programa anterior.
El problema que ahora debe resolver es el siguiente:
> Si la respuesta es más de 18 digo que es mayor de edad.
> Si la respuesta es entre cero y 18 digo que es menor de edad.
> Si la respuesta es menos de cero digo que no ha nacido.
Es un problema dónde debo comprobar tres casos, con el [si-entonces-sino]
no tengo suficiente, debo anidarlos. Mira el resultado en la siguiente imagen.
Aquí se ven las estructuras anidadas, las llaves las representan. Si el resultado
de evaluar la comparación de la primera estructura da como resultado
[verdadero] dices que aún no ha nacido; si, por el contrario, el resultado de la
comparación es [falso] entra en el tramo del [sino] donde se encuentra con
otra estructura que debe evaluar.
Para acabar con este tema debes tener bien presente que cuando acaba la
estructura condicional el programa sigue con el bloque situado
inmediatamente después.
Las estructuras repetitivas
También se las denomina estructuras iterativas.
Son estructuras que igualmente alteran el flujo secuencial normal de un
programa.
Te van a permitir ejecutar uno o varios bloques, los mismos, un número
determinado de veces. Incluso repetirlos indefinidamente hasta que se pare el
proyecto. Los bloques que se han de repetir deben estar programados en el
interior de la estructura.
El número de veces que se van a repetir los bloques del interior de la
estructura pueden ser:
1. Un número concreto.
2. Mientras se cumpla una condición.
3. Indefinidamente.
Importante remarcar que en el segundo caso debes programar los bloques
interiores de manera que permitan modificar el resultado de la condición
de repetición porqué sino puede convertirse en un bucle infinito del que
no salga nunca.

Lo explico con unos ejemplos.


Voy a ello:
1. La primera estructura deslizará 10 veces tu personaje a una posición
aleatoria del escenario. Diez, ni una más ni una menos.
2. La segunda moverá tu personaje pasito a pasito desde dónde esté
hasta que toque el borde de la pantalla. No se sabe cuántas veces lo
repetirá ya que depende de la [posición x] de partida, pero sí puedes
estar seguro de que saldrá de la repetición cuando toque el borde.
3. En todo momento el personaje se moverá a la posición del puntero
del ratón. Lo repetirá siempre, con la excepción de que se pare el
programa, claro. Tendrás la sensación de que el personaje te
persigue.
Si los quieres probar no los programes todos a la vez. Programa uno, lo
ejecutas para probarlo y lo eliminas. Luego haz lo mismos con el segundo y
con el tercero.
No te preocupes si queda algún fleco por aclarar. Las estructuras
condicionales y repetitivas son necesarias casi en cualquier proyecto que
construyas, incluso me atrevo a decir que serán necesarias en todos. Las
usarás tanto que acabarás conociéndolas en profundidad. Yo me encargaré de
ello con los ejemplos.
La estructura repetitiva [por siempre]
Esta estructura es muy especial ya que una vez se activa los bloques que
contiene se ejecutan sin fin, una vez detrás de otra en cada vuelta de la
repetición. Tan sólo podrás detener la ejecución del [por siempre] parando el
proyecto con el botón de stop o con un bloque de [detener].
Debido a sus infinitas iteraciones, el bloque no tiene hendidura en su parte de
abajo con lo que no se pueden encajar otros bloques a continuación. De
hecho, nunca llegarían a ejecutarse.
Aunque parezca mentira por su definición y concepto, la estructura [por
siempre] es de las más utilizadas en Scratch.
En estas estructuras vas a alojar el programa principal del proyecto, el control
de este.
Se usan para tocar música indefinidamente, animaciones, llevar marcadores,
el movimiento de los personajes, etc.
Muchas comprobaciones se deben hacer siempre, en todo momento. Como
muestra: el control de si impacta en un enemigo, el control de las pulsaciones
de las teclas de movimiento, etc. Controles como estos se deben hacer en
todo momento del juego.

Paralelismo
El paralelismo es un concepto de programación que significa que el
ordenador, o el dispositivo de forma generalizada, es capaz de realizar tareas
simultáneamente, de ejecutar programas diferentes a la misma vez.
Esto debe ayudarte a consolidar un principio del pensamiento computacional
que viene a decir que los problemas grandes deben dividirse en problemas
más pequeños que, posteriormente, se ejecutan en paralelo.
En Scratch tienes la posibilidad de crear en el área de trabajo del mismo
objeto dos programas que se ejecutarán a la vez. Por ejemplo, poniendo dos
bloques de bandera verde con dos programas, uno debajo de cada bloque de
bandera.
Mira un ejemplo: voy a hacer que tu gato salte sin parar y, a la vez, cuente del
1 al 10.
Observa el código de bloques y lo analizo. Los dos programas son necesarios,
no son dos ejemplos diferentes, debes programar los dos en el mismo
personaje.
Como se ve en el código tienes dos columnas de bloques que se ejecutan a la
vez cuándo haces clic en la bandera verde.
Es importante recalcar que las instrucciones no se alternan, sino que se
ejecutan en el mismo tiempo.

Otras formas de paralelismo se darían teniendo dos o más programas que


empiecen con bloques de eventos, con los bloques de tipo “sombrero”, no
siempre tiene que ser con la bandera verde.

En este ejemplo el proyecto espera, en todo momento, que se reciba tanto el


[mensaje1] como el [mensaje2].
El paralelismo también se produce si en tu proyecto tienes más de un
personaje u objeto que tienen sus propios programas cada uno. Todos los
programas de todos los objetos se ejecutan al mismo tiempo.
Voy a ilustrarlo con otro ejemplo. Voy a hacer que dos personajes caminen al
mismo tiempo desde los extremos hacia el centro de la pantalla y cuando se
encuentren se saluden.
Paso 1. Añade otro personaje más al proyecto, por ejemplo, el elefante de la
galería.
Abajo a la derecha en el panel de objetos.

Para encontrar el elefante (de nombre Elephant) puedes usar el buscador de la


barra de herramientas o filtrar por categoría [Animales] para reducir la lista
de objetos mostrados.

Una vez localizado, con que le hagas clic, el personaje se añade al proyecto y
puedes hacer sus propios programas. Así, como estoy diciendo en este
capítulo, los programas de todos los objetos se ejecutan a la vez.
Paso 2. Programa: debes hacer clic en cada personaje antes de programar en
él.
En el gato En el elefante
Los dos programas se ejecutan, a la vez, cuándo se hace clic en la bandera
verde, y hacen:
1. Se sitúa al personaje en un extremo.
2. Hace que apunte en la dirección que le corresponda.
3. Inicia una estructura que se repetirá hasta que se toque al otro personaje.
3.1. Cada repetición moverá al personaje 5 pasos.
4. Cuando acabe las repeticiones saldrá de la estructura y saludará al otro
personaje.
Si te fijas, en el elefante he añadido un bloque más. Este bloque define el
estilo de rotación a izquierda y derecha. Con ello he evitado un problema que
ocurría al principio y que hacía que el elefante se moviera cabeza abajo.
Pasaba porque se desplaza hacia la izquierda, el gato al desplazarse tan sólo
hacia la derecha no le hace falta el bloque.
Para acabar el capítulo creo conveniente que hagas otro proyecto con
múltiples objetos.
Vas a crear una animación dónde haya diferentes pelotas que al hacer clic se
muevan aleatoriamente. Añadirás un botón que detenga el movimiento de
todas ellas.
Cada objeto necesita de su propia programación, está claro, si no, aquel
personaje que no tenga programas no hará nada.
Va a ser importante que aprendas una funcionalidad muy interesante que te
va a ahorrar tiempo: los programas se pueden “copiar” de un personaje a otro.
Muy útil cuando el comportamiento de algún objeto es similar al de otro.
Vamos allá y te aviso cuando llegue este truco.
En este proyecto nuevo vas a añadir los siguientes personajes. La forma de
hacerlo es cómo has visto en el proyecto anterior, con el botón de elegir
objetos.
Añade de la categoría deportes Basketball, Soccer Ball y Tennis Ball.

Los nombres de los objetos los puedes cambiar en la caja de texto del panel
de propiedades del objeto que está justo encima. Borra el nombre actual,
escribe el nuevo y pulsa Intro.
Voy con la programación.
El comportamiento de los 3 objetos va a ser el mismo. Tan sólo hay una
pequeña modificación entre ellos. Así que lo mejor va a ser programar uno de
ellos hasta conseguir el comportamiento deseado y, una vez conseguido,
traspasarás el código a los otros dos personajes y ya harás las modificaciones
propias de cada uno.
Las pelotas deben ir desplazándose aleatoriamente por la pantalla y en el
momento que choquen con otra deben pedirse perdón.

Estos programas están codificados en el objeto Basketball.


Son dos programas que van a ejecutarse en paralelo ya que los dos se inician
en el momento de hacer clic en la bandera verde.
El programa de la derecha va a controlar el desplazamiento y el de la
izquierda va a controlar el choque con otros personajes.
Dado que el proyecto no tiene fin, hasta que pares la ejecución, todo va en
estructuras [por siempre]. Con ello, el personaje se va a estar moviendo
siempre y, también siempre, va a controlar los choques.
El código no tiene mucho secreto. Tan sólo he de destacar la expresión
booleana que evalúa la estructura condicional [si - entonces]. Es una
expresión que tiene un operador booleano O. Si recuerdas, el operador O
devuelve el resultado [verdadero] si alguno de los dos operandos es
[verdadero], o los dos, claro.
Esta expresión evalúa si el objeto actual Basketball está tocando el objeto
Soccer Ball (como primer operando) O si el objeto actual Basketball está
tocando el objeto Tennis Ball (como segundo operando). En caso de que se
cumpla esta condición compuesta el objeto Basketball pedirá perdón durante
medio segundo.
Bien, ahora viene lo bueno, como los otros dos objetos del proyecto deben
hacer lo propio vas a “traspasarles” este mismo código. Desde el objeto
Basketball coge uno de los programas por su bloque inicial y arrástralo
encima del objeto en el que quieres copiarlo en el panel de objetos.

Hecho esto haz clic en el objeto Soccer Ball y comprueba que el programa se
ha copiado. Estará en la parte superior izquierda, así que ponlo en sitio más
cómodo; siempre arrastrando des del bloque inicial para que los demás vayan
con él. Si coges desde otro bloque desmontarás el programa.
Ahora vuelve al objeto Basketball con un clic y arrastra el segundo programa
encima de Soccer Ball. Haz clic en Soccer Ball y verás el programa
traspasado. Colócalo en un sitio más visible.
Te invito a que hagas lo mismo sobre el objeto Tennis Ball.
Queda una cosa antes de poner en marcha el proyecto. Ahora no funciona
bien por qué los tres objetos están evaluando la misma condición y no tiene
sentido. Cada objeto debe evaluar si toca los otros dos objetos. Ahora dos de
ellos no están bien ya que evalúan si se tocan a sí mismos.
Así que cada uno debe evaluar si toca a los otros dos objetos, no a él mismo.
Debes arreglarlo.
Si pones en marcha el proyecto las pelotas deben ponerse en movimiento y
disculparse cada vez que chocan.

Comentarios
Los comentarios te sirven para añadir anotaciones legibles a los usuarios que
estén revisando el código de tu proyecto.
Yo los considero de suma importancia, y más en caso de compartir los
proyectos.
Como te he expuesto ya en alguna ocasión, puedes llegar a la resolución de
un reto en programación por caminos diferentes, todos igual de válidos. Bien,
ahora te acabo de decir una mentira piadosa, no todos los programas son
igual de válidos ya que algunos son más eficientes que otros debido a que
usan menos bloques, menos variables o están mejor construidos y reducen el
tiempo de ejecución.
Aun así, es posible que un mismo reto tenga más de una solución válida.
Es por ello por lo que ayudarás, y mucho, a otros programadores si añades
comentarios a tus programas.
Los comentarios no afectan en nada a la ejecución del proyecto, no ralentizan
ni intervienen de ningún modo en la marcha del proyecto.
Añadir un comentario
Tan sólo debes hacer un clic derecho en el área de trabajo o bien encima de
un bloque concreto que quieras comentar.
Aparece un menú emergente y debes escoger la opción [añadir comentario].
Se muestra una ventana amarilla dónde dentro escribes la anotación que creas
oportuna.
Si el comentario lo creas encima de un bloque Scratch une con una línea el
bloque con el comentario, como puedes ver en la figura anterior. Si lo haces
directamente en el área de trabajo, sin tocar ningún bloque, el comentario
quedará flotante.

Modificar comentarios
Cambiar el contenido
La modificación básica que puedes hacer es cambiar el contenido del
comentario; para ello haz un clic sobre el texto y ya tendrás el cursor
parpadeando para hacer el cambio que necesites.
Encoger el comentario
Te va a interesar encoger la ventana del comentario, sobre todo, si la
anotación es extensa. Encogiéndolo haces que no moleste a otros bloques y
programas del proyecto. Para encoger el comentario haz clic sobre el
triángulo gris que lo encabeza.

Verás que ha cambiado de dirección. Para volver a expandirlo por completo


vuelve a hacer clic en el triángulo gris.
Agrandar el área de escritura
Te puede pasar que, con el espacio inicial que te proporciona Scratch para
escribir el comentario no tengas bastante. O también puede ser que este
espacio resulte demasiado grande para el pequeño comentario que necesitas.
Puedes cambiar las dimensiones de la ventana del comentario arrastrando por
la parte inferior derecha dónde hay un icono de dos líneas diagonales.
Arrastra hacia dentro para empequeñecer y hacia fuera para agrandar.
Funciona en los dos sentidos vertical y horizontal.

Borrar o duplicar comentarios


Haciendo un clic derecho sobre un comentario lo podrás duplicar o eliminar.
Capítulo 5: El editor de dibujo
Scratch incorpora un editor de imágenes para sacar a relucir tu vertiente más
artística.
Con él puedes crear tus propios personajes, objetos, disfraces y escenarios.
Aparte te permite modificar los que están en la galería.

Dibujo vectorial vs mapa de bits


Antes de ponerte en faena es importante conocer los dos tipos de dibujo que
puedes crear. Tiene mucho que ver en cómo el ordenador almacena la imagen
en un archivo.
Personalmente prefiero el dibujo vectorial por la precisión que aporta, aunque
tenga un poco más de dificultad. Te lo voy a explicar el primero.
Dibujo vectorial
Técnicamente el dibujo vectorial almacena figuras simples, guarda una
imagen como un conjunto de éstas que se pintan mediante una fórmula
matemática. Es por ello por lo que los dibujos vectoriales son mucho más
suavizados, aunque, quizá, sean un poco más difíciles de dibujar. Así pues,
los dibujos vectoriales están hechos de líneas, círculos, cuadrados,
rectángulos, etc.
Con esto, cuándo dibujas un círculo en el editor de dibujo, al hacer zoom y
acercarte el círculo sigue viéndose perfecto porqué cada vez se redibuja a
partir de la fórmula que lo define.
En este modo de dibujo la herramienta del lápiz traza una “curva matemática”
que contiene muchos puntos de control:
En la imagen anterior se aprecia una curva hecha con la herramienta lápiz y la
misma vista con la herramienta de puntos de control.
La magia del dibujo vectorial es que esos puntos de control pueden moverse,
borrarse o añadir los que sean necesarios para conseguir la figura perfecta.
Las figuras de un dibujo vectorial son independientes entre ellas y se manejan
individualmente, las puedes rotar, escalar y mover una a una para conseguir
mucha precisión.
Otra función importante es la que te permite agrupar, y desagrupar, figuras
para que una vez en grupo se traten conjuntamente. Imagina que estás
dibujando un personaje y dibujas primero los brazos, luego el cuerpo, luego
las piernas y finalmente la cabeza. Hecho todo esto lo puedes seleccionar y
agrupar de manera que se maneje como una sola figura y, por ejemplo, evites
que alguna parte se desplace de su sitio sin querer.
Con todo, los dibujos vectoriales son más claros y tienen mejor resolución
gracias al anti-aliasing, que dicho grosso modo, evita los “dientes de sierra”
de los bordes de un dibujo.
Dibujo de mapa de bits
Técnicamente los dibujos de mapa de bits se guardan como una cuadrícula de
píxeles. Cada píxel contiene la información de su color.
Siendo así una vez guardados los ficheros de un dibujo de mapa de bits
acostumbran a ocupar más espacio que los vectoriales.
Este modo de dibujo no dispone del anti-aliasing que acabo de comentar. Te
puedes imaginar, entonces, que los bordes no van a estar suavizados.
Además, los mapas de bits se pueden guardar con calidades diferentes siendo
de menos resolución los de menor calidad. La calidad viene dada en función
de si en el fichero se guarda el color de los píxeles uno a uno o se guarda
comprimido, para que lo imagines (aunque no sea del todo cierto), se guarda
por zonas.
Una imagen vale más que mil palabras. El mismo círculo aumentado siendo
vector el de la izquierda y mapa de bits el de la derecha.

El editor de dibujo vectorial a fondo


Empezaré creando un personaje nuevo. Utiliza el botón de añadir objetos de
la parte inferior derecha del panel de objetos.

La interfaz pasa a ser el editor de dibujo.


La interfaz de dibujo
No te voy a definir ahora cada uno de los botones. Voy a enseñarte su uso a
medida que trabaje un ejemplo. Sí cabe decirte que en la izquierda tienes las
herramientas propias de dibujo y en el panel de arriba el nombre del objeto,
los selectores de color y grosor, las herramientas de capas y los
modificadores de la herramienta seleccionada que irán cambiando según
selecciones una u otra.
Lo primero que debe centrar tu atención es el gran botón azul de la parte
inferior, que te permite cambiar de dibujo vectorial (opción por defecto) a
dibujo de mapa de bits.
Ten en cuenta que si haces el cambio de modo a medio dibujar puedes tener
consecuencias no deseadas y que te quede mal el objeto. Un ejemplo.
Mira este círculo vectorial. Está muy cerca, tiene mucho zoom.
Si ése mismo círculo lo conviertes a mapa de bits, está ese botón azul para
ello, verás qué pasa.
La imagen se pixela mucho. Pierde mucha definición teniendo en cuenta que
es porqué hay mucho zoom. Si alejas mejora, pero no queda bien del todo.
Unas cerezas
Imagina que estás creando un juego de cazar frutas. Dibuja unas cerezas.

Te cometo las herramientas a medida que las necesites y al final te hablo de


las que queden en el tintero.
Herramienta de zoom

Con estos botones alejas, pones al 100% la vista o acercas la imagen.


Respectivamente.
Notarás que estás más cerca porqué la cuadrícula blanca y gris se hace mayor.
Debes entender esta cuadrícula cómo el color transparente. Si una figura está
rellena con esta cuadrícula, transparentará, y se verán los objetos que tenga
detrás.
Acércate un poco haciendo 3 clics a la lupa del signo de más. Así puedes
dibujar en grande y realmente las figuras no lo serán tanto cuándo te alejes.
Herramientas de selección de color y grosor
Antes de empezar a crear figura alguna es necesario saber escoger los colores
con los que la vas a crear.
La verdad es que el selector de color no me gusta demasiado, personalmente,
pero es eficaz como cualquier otro.
Debes escoger un color de relleno y un color de contorno antes de dibujar.
Cierto es que luego lo vas a poder modificar.
1. Es el selector de color de fondo. Al hacer clic veras tres deslizadores
con los que tienes que escoger el color. Primero va el tono, luego la
saturación y finalmente el brillo.
Necesitas tener algo de saturación puesta o no verás tonalidad
alguna, con lo que todo será blanco o negro.
2. El selector de color de contorno o borde. Funciona igual que en el
caso del color de fondo.
3. El grosor del contorno de la figura que vas a crear.
4. Es el selector del [sin color]. Con él puedes hacer figuras
transparentes si no pones color de fondo.
5. Recogedor de color. Con este botón puedes capturar un color que ya
esté empleado en el objeto. Así te aseguras de que utilizas el mismo
que has usado antes en caso de que lo necesites.
6. Degradado o gradiente: si escoges una de las opciones de degradado
necesitarás escoger dos colores para hacer la transición de uno a otro.
Necesito que selecciones un color cereza claro de fondo y sin color en el
contorno.
Herramienta de elipse

Debes seleccionar esta herramienta e ir al lienzo a arrastrar para crear


la figura. Primero clic y soltar en la herramienta para seleccionarla y luego
clic y arrastrar en el lienzo para dibujar la elipse.
La imagen de la herramienta que te pongo es con fondo azul porqué está
seleccionada. Si no está seleccionada es negra con fondo blanco. Lo mismo
para las siguientes imágenes.
Dibuja una elipse que se acerque a una cereza.
Herramienta de selección

Cuando ya tengas tus primeras figuras creadas seguro que


necesitarás cambiarlas de posición para perfeccionar tus creaciones.
Para ello, con un clic simple selecciona la figura y arrastra des de su interior
para moverla.
Si te equivocas en la selección, haz clic en una zona vacía del lienzo para
deseleccionar y vuelve a intentarlo.

Con la misma herramienta puedes cambiar su tamaño arrastrando desde los


puntos de control que aparecen alrededor.
Puedes arrastrar hacia fuera para agrandar o hacia dentro para hacer la figura
más pequeña.
La última acción que puedes hacer con esta herramienta es rotar la figura, en
este caso debes arrastrar con el punto de control de la doble flecha en la parte
inferior.

El modificador shift
Un modificador muy común en todas las herramientas es que, si mantienes
pulsada la tecla de las mayúsculas, no la de bloquear mayúsculas, sino el
shift; permite realizar las acciones con más precisión. Concretamente, si
pulsas y mantienes la tecla shift y realizas una operación, pasa esto:
> Mover: mueve la figura en la horizontal, vertical o diagonal sin
desviarse. Es decir, hace un movimiento recto.
> Cambiar tamaño: hace un cambio de tamaño proporcional, es decir,
mantiene la relación de aspecto de las dimensiones horizontal y
vertical. En caso de trabajar con un rectángulo, con shift apretado,
hace un cuadrado perfecto. En caso de trabajar con elipses, con shift
apretado, dibuja una circunferencia perfecta.
> Rotar: con la tecla shift mantenida hace giros de 45 en 45 grados.
Ahora mueve la elipse un poco a la izquierda del lienzo.
Eliminar figuras
Seguramente te vas a encontrar con el caso de que una de las figuras de tu
dibujo ya no te va a hacer falta y quieres eliminarla.
Tan sencillo como seleccionarla con un simple clic, teniendo la herramienta
de selección activada, y pulsando una de las teclas de borrar del tu teclado, el
retroceso o el suprimir.
También puedes usar el botón de eliminar:

Desplazamiento por el lienzo


El lienzo no se puede hacer mayor de lo que es. Si necesitas un dibujo mayor
debes trabajar con zoom de manera que se acerque la imagen y, al dibujar las
figuras más pequeñas realmente, te van a caber más.
Tan sólo si trabajas con zoom necesitarás desplazarte por el lienzo, para ello
aparecen unas barras grises oscuro de desplazamiento vertical y horizontal.

Reformar
La herramienta más importante del dibujo vectorial es la de reformar.

Al seleccionar una figura con esta herramienta aparecen unos puntos de


anclaje que son distintos a los de la herramienta de seleccionar.
Estos puntos de anclaje definen el contorno de la figura con las llamadas
curvas de Bézier.
Al hacer clic en uno de estos puntos de anclaje aparecen los manejadores que
te van a permitir modelar tu figura con una gran precisión.

Los puntos de anclaje se pueden mover arrastrando desde su centro.


Además, los puntos de anclaje pueden ser curvados (por defecto) o rectos
para hacerlos puntiagudos. Seleccionado el punto de anclaje cambia su modo
con estos botones del panel superior de opciones.

Cambiando de modo a recto y desplazando hacia abajo el punto superior te


queda así:

Haz clic en una zona vacía para des seleccionar cualquier figura.
Ahora te propongo que cambies el color, oscureciéndolo, pues vas a crear la
sombra.
Hecho el cambio de color, dibuja una elipse vertical y estirada. A ver qué tal
te sale.
Añadir y quitar puntos de anclaje
Ahora toca adaptar esta elipse al contorno derecho de la cereza. A parte de
moverla a su posición vas a notar que con los puntos de anclaje que ahora
tiene la elipse poco vas a acercarte al objetivo.
Debes seleccionar la herramienta de reformar.
Para añadir nuevos puntos de anclaje haz clic en una posición vacía del
contorno de la figura y te creará uno nuevo.
Así ya puedes modelar con más precisión.
En caso de que te sobre algún punto, haz doble clic sobre él y desaparecerá.

Los manejadores
Cómo has visto al seleccionar un punto de anclaje aparecen los manejadores,
que son unas manecillas rectas que se pueden arrastrar para pronunciar las
curvas hacia un lado.
Fíjate en el punto de anclaje que te señalo en verde. Tiene un manejador corto
largo arriba y el otro corto hacia abajo.
Esto hace que la curva sea más larga en la parte superior.

A mí al final me quedó así.


Seleccionar, deseleccionar y agrupar figuras
Después del trabajo que te ha costado conseguir la sombra, ahora sería una
pena que por descuido o error se moviera o se deformase.
Evítalo agrupando las dos figuras, así, se construye una figura única e
inseparable.
Antes te tengo que enseñar a seleccionar más de una figura al mismo tiempo.
Con la tecla shift. Selecciona primero una de las dos figuras con la
herramienta que viste al principio y, después, con nuestra amiga la tecla shift
pulsada haz clic en la segunda figura. Quedarán las dos seleccionadas.

Recuerda la herramienta de selección.


Si te equivocas o simplemente quieres deseleccionar lo que tengas
seleccionado haz clic en una zona vacía del lienzo.
Dibujando un rectángulo de selección. Otra forma de selección es dibujar
un rectángulo de manera que todas las figuras que toquen este rectángulo
quedarán seleccionadas.
No se trata de dibujar una figura rectangular de color, sino que se trata de
escoger la herramienta de seleccionar y empezar a dibujar un rectángulo
partiendo de una zona vacía.
En la siguiente figura verás el rectángulo que he hecho des de la esquina
inferior derecha y en la dirección de la flecha verde. Toda figura que toque el
rectángulo discontinuo quedará seleccionada. Insisto, no estoy dibujando una
figura.

Bien, cuento que tienes seleccionadas las dos figuras. Agrúpalas ahora con
este botón:
Puedes hacer la operación inversa con el botón contiguo y así volver a
separar las piezas de una figura agrupada.
Ahora, con las figuras agrupadas si escalas, rotas o haces cualquier otra
operación, afecta a todo el conjunto a la vez. De hecho, ahora, es una sola
figura.

NOTA IMPORTANTE: la técnica de selección múltiple con la tecla shift te


sirve también en el trabajo con la reforma y puntos de anclaje.
Trabajando con ellos puedes seleccionar más de un punto de anclaje haciendo
clic simple el primero y luego pulsando shift y haciendo clic en otro. En la
siguiente figura hay dos puntos de anclaje seleccionados a la vez, los he
rodeado con un círculo verde para que los identifiques.
Duplicar
Ahora tienes que crear la segunda cereza. Vaya faenón si la tienes que volver
a dibujar partiendo de cero.
Por suerte puedes clonar figuras con el típico copiar y pegar.
Selecciona la figura y copia y pega con estos botones.

Si acaso, aleja un poco el zoom para que quepan bien las dos cerezas en
pantalla.
Una vez pegada desplaza la segunda cereza a la derecha con la herramienta
de selección.
Las capas
En el dibujo vectorial las figuras se sobreponen en capas. Es decir, se apilan
unas encima de otras a medida que se van creando. Así unas están delante de
otras y se tapan entre sí.
Si tienes alguna con fondo transparente se verá lo que tiene por debajo.
Por suerte estas capas se pueden reordenar con lo que no tienes que pensar si
dibujo primero una cosa o dibujo la otra.

Estos botones sirven para dicha ordenación. De izquierda a derecha: mueve la


figura una capa adelante, una hacia atrás, delante de todas y por debajo de
todas.
Con todo ello, mueve la segunda cereza una capa hacia atrás para que quede
por detrás de la primera.
Con lo estudiado hasta ahora debes ser capaz de crear un brillo en la cereza
de la izquierda.
Dibuja una elipse blanca, escálala, rótala y muévela tal como ves en la
siguiente imagen. Cambia el color primero.

Relleno con un gradiente


Para darle más realismo puedes rellenar el brillo con un gradiente. Es un tipo
de relleno en el que el color de fondo pasa de un tono a otro paulatinamente
des de un punto inicial.
Están los gradientes circulares y los rectos.

Haz un gradiente circular desde el color blanco al color transparente.


Pincel

Es una herramienta para dibujar a mano alzada. Puedes escoger el


color de relleno y el grosor en el panel superior, como siempre.
Vas a dibujar los tallos de las cerezas. Al ser a mano alzada te puede resultar
un poco difícil al principio.
Siempre tienes la posibilidad de DESHACER para dejar sin efecto la última
acción, como en la mayoría de los programas.

Estos son los botones de deshacer y rehacer. Así que dibuja sin miedo y si no
te gusta lo deshaces y lo vuelves a intentar.
Yo, ahora, voy a enviar atrás las capas de los tallos para que queden detrás de
las cerezas.
Además, quizá perfeccione un poco las figuras con el botón de reformar ya
que, aunque sean figuras de mano alzada tienen sus puntos de anclaje como
todas las demás.
Ahora que me gusta cómo queda voy a aprovechar a seleccionar todas las
figuras poniendo el zoom por defecto y con la herramienta de selección
dibujo un rectángulo que englobe todas las figuras. Lo agrupo todo para
evitar una desgracia.
Voltear figuras
Ahora te queda dibujar una hoja. Hazlo en dos mitades. Dibuja una mitad y
luego la clonas con copiar pegar y la volteas como te enseñaré en un
momento.
La primera mitad como esta. Tienes ya vistas las herramientas necesarias,
tienes que eliminar algunos puntos de anclaje y modificar otros.
Yo la he hecho partiendo de un rectángulo.

Ahora haz copiar y pegar de la hoja y voltéala con esta herramienta de volteo
vertical.
Cuando lo tengas muévela encima de la otra mitad arrastrando des del
interior.
Herramienta de relleno de color
Voy a cambiar el color de la mitad superior de la hoja para darle algo de
realismo.

Para usar el relleno de color selecciona esta herramienta y luego


escoge el color con el que vas a rellenar. ¡Atención! Quizá tengas el
degradado puesto, quítalo si es así. Escoge un verde claro.
Sitúate encima de la figura a colorear y haz un clic. A ver si te sale como a
mí.

Yo las doy por terminadas. Quizá me quede la agrupación final de todas las
figuras.
Ahora para terminar el capítulo te comento las herramientas que no he
necesitado para dibujar las cerezas y han quedado por explicar.
Herramienta de rectángulo

Funciona como la elipse. Seleccionas la herramienta, el color de


relleno y contorno y vas al lienzo. Arrastra para dibujar.
Si pulsas y mantienes la tecla shift te va a dibujar un cuadrado perfecto.
Herramienta de línea

Tres cuartos de lo mismo, seleccionas la herramienta de línea,


el color, el grosor y vas al lienzo. Arrastra para dibujarla.
En este caso la tecla shift lo que hace es que la inclinación de la línea sea
perfecta, es decir, la inclinación va en grados: 0, 45, 90, 135, 180, etc.
Herramienta de texto

Con esta herramienta puedes añadir objetos de texto en fondos


del escenario o para usarlos en portadas, cambios de nivel, marcadores, etc.
El modificador que tiene es el tipo de letra. No hay mucho que escoger, la
verdad.
No te parezca extraño que no tenga el modificador del tamaño de letra ya que
al tratarse de un objeto más, puedes cambiar la medida con la herramienta de
selección. Recuerda usar la tecla shift para que no se deforme el texto.
Si te equivocas en la redacción del texto, la puedes corregir si vuelves a
seleccionar la herramienta texto y haces clic en el objeto. Aparece el cursor y
allí editas el texto.

En esta imagen verás que he creado una figura, la he duplicado, a la segunda


le he cambiado el color a un gris oscuro y jugando con las capas he
conseguido una sombra.
Herramienta de goma de borrar
Cuidado con esta herramienta, tiene un efecto especial.
Va a funcionar como la goma de borrar en el modo mapa de bits, es decir, por
allá donde pases la goma eliminará el color que se encuentre en su camino.
Lo que quede en el lienzo va a modelar nuevas figuras con las formas
restantes. Mejor una imagen que mil palabras.

El funcionamiento es similar a dibujar una figura: seleccionas la


herramienta de la goma, modificas el grosor y vas al lienzo a arrastrar.

He dibujado un rectángulo, le paso la


goma de arriba abajo y el resultado son dos figuras independientes.
Bien usada es una herramienta fantástica.

El estilo artístico en el dibujo vectorial


Te planteo otro reto que queda fuera del alcance de este libro, pero te animo a
descubrirlo, es el estilo en el dibujo.
Fíjate en la siguiente imagen. Es el dibujo de cinco personas diferentes, con
el mismo estilo artístico.
Tienen la misma proporción corporal. La misma técnica en la creación de
sombras. Los mismos rasgos faciales.
Más para tener en cuenta. El nivel de detalle. No es lo mismo que dibujes
para un juego en el que tengas que animar a los personajes que para otro en el
que no. El nivel de detalle que uses en el primer caso tendría que ser poco
comparado con el segundo.
Yo si tuviera que crear un personaje para una animación no lo haría como el
de la siguiente figura. Tiene muchas capas.
No hay técnicas buenas ni técnicas malas a la hora de hacer arte. Yo te
aconsejo pensar un poco en la finalidad para la que estás creando.
Las videoconsolas son computadoras de gran capacidad de procesamiento y
gran cantidad de memoria con lo que disponen de juegos con un estilo
artístico muy realista. Para llegar a esas cotas las compañías de software se
dotan de equipos humanos que cuentan con muchas personas especialistas en
el modelado, iluminación, renderizado, animación y creación de gráficos
tridimensionales.

El editor de dibujo de mapa de bits


Te doy una pincelada, nunca mejor dicho, del editor de dibujo en modo mapa
de bits.
No me extiendo mucho y dejo en tus manos descubrir sus virtudes y sus
defectos.
Para entrar en el modo de mapa de bits, antes de empezar a dibujar,
selecciona el modo con el botón azul de debajo del lienzo.

Te darás cuenta enseguida que se ha reducido el número de herramientas. Ya


no dispones de las herramientas de seleccionar ni de reformar.
A grandes rasgos el funcionamiento viene a ser el mismo que en el dibujo
vectorial:
1. Seleccionas la herramienta.
2. Seleccionas los colores.
3. Vas al lienzo.
4. Arrastras para dibujar.
La tecla shift tiene la misma función que en otro modo de dibujo.
Debe quedarte claro que aquí no vas a dibujar figuras, vas a dibujar trazos.
Cabe comentar que la herramienta de relleno, el cubo de pintura va a pintar
siempre zonas cerradas. Con ello, te puede pasar que, al pintar una zona, la
pintura “se escape” y te pinte todo el lienzo. Será debido a que la figura no
está perfectamente cerrada.
Bien, pues dejo en tus manos la experiencia en este modo de dibujo. No dudo
que te vas a decantar por el dibujo vectorial.
Así que ya puedes ponerte a crear objetos, diseñar disfraces y componer
fondos de escenario para tus proyectos.
Capítulo 6: El sonido
Scratch te permite usar sonidos en tus proyectos para darles más realismo o
que tengan un mejor acabado.
Los sonidos están asociados a los objetos incluyendo el escenario.
Los puedes encontrar en la pestaña [Sonidos], al lado de [Disfraces].

Los bloques de sonido


Lo primero que vas a ver es su uso. Scratch te facilita unos bloques de color
fucsia para usar los sonidos en tus proyectos.
Si haces clic en la categoría de sonido de la lista de categorías te los pone a la
vista enseguida, son éstos y los comento en orden:

Este bloque hace sonar el sonido seleccionado de la lista desplegable y para


la ejecución del programa hasta que acabe de sonar. Una vez emitido todo
seguirá la ejecución con el bloque que esté encajado a continuación.
Muestra una lista de sonidos porqué los objetos pueden tener asociados más
de uno, imagina, un personaje puede tener el sonido de caminar, el de saltar,
el de lanzar, etc. Luego comento cómo añadir más sonidos a un objeto.
De momento, para probar, puedes hacer maullar al simpático gatito.

Este otro bloque es similar al anterior con la diferencia que no va a parar la


ejecución del programa. Sonará, pero seguirá con el siguiente bloque. Eso sí,
no suena en bucle, sonará una vez y hasta el final. Siempre y cuando no lo
pares expresamente.
Cuando se ejecuta este bloque se paran todos los sonidos que se estén
tocando en ese momento.
Si tienes puesto algún bloque de sonido dentro de una estructura repetitiva
puede ser que vuelva a empezar a sonar, aunque se ejecute el bloque de
detener. Quiero decir, si tienes metido un sonido en un bucle [por siempre] el
bloque de [detener todos los sonidos] tendrá efecto sobre la iteración actual,
pero cuando el bucle siga con la siguiente iteración volverá a sonar, seguro.
He creído necesario comentarlo por si te ocurre el caso que un bloque de
[detener todos los sonidos] no parezca que tenga efecto y tu proyecto no para
de sonar; la causa puede ser que el bloque de tocar un sonido esté dentro de
una estructura repetitiva.

Este bloque te permite añadir efectos al sonido.


Fíjate que dice [sumar], significa que añade el valor del efecto especificado a
su valor actual.
Por un lado, tienes el efecto [altura] que produce efectos de tono en el sonido.
Este efecto de altura distorsiona el tono hacia arriba o hacia abajo según el
valor del efecto (es decir, los valores positivos desplazan el audio más alto en
el tono, los valores negativos desplazan el audio más bajo en el tono).

Un cambio de 10 corresponde a un medio paso. Entonces, para subir una


octava entera, debes establecer el efecto de tono en 120, ya que hay 12
medios pasos en una octava. Un valor de 100 sonará como un séptimo menor.
Lo mismo ocurre con los valores negativos: para bajar un sonido en una
octava, usa un valor de -120.
Por otro lado, está el efecto de [balance izquierda/derecha]. Hace que el audio
se desplace a la pista de salida izquierda o derecha según su valor. Valores
positivos desplazan a la derecha y negativos a la izquierda.
Este bloque establece el valor al efecto, no lo aumenta ni lo disminuye, le
pone el valor indicado.

Quita todos los efectos de sonido comentados anteriormente.

Aumenta o disminuye el valor actual del volumen del audio con el valor del
parámetro.

Fija el valor del volumen a un tanto por ciento concreto sea cual sea el valor
actual.

Es el bloque informativo que guarda el valor actual del volumen. Lo puedes


usar en otros bloques.
Ejemplo: la pelota que rebota
Te propongo un ejemplo no muy complicado para practicar los bloques de
sonido.
El enunciado es un pequeño juego que consiste en mantener una pelota
rebotando en una barra que mueves con el ratón, tan sólo eso.
Tienes que usar los siguientes sonidos:
> El rebote de la pelota en la barra.
> El rebote de la pelota en las paredes.
> Cuando se pierde la pelota por abajo y se pierde la partida.
> Una música de fondo a medio volumen.
Los objetos y sus sonidos
Prepara los objetos necesarios y anexa los sonidos que te van a hacer falta.

No necesitas el gato; necesitas la barra que he


escogido de la galería de nombre Button2.
Te recuerdo que para añadir un personaje tienes el botón de la parte de abajo
del panel de personajes con el que puedes, en orden de arriba abajo: cargar un
objeto de un fichero, añadir un objeto de la galería al azar, crear tu propio
objeto y buscar uno concreto de la galería.
Elige ese último botón de la lupa y busca el objeto [Button2].
En este ejemplo no he cambiado nombres para no confundir, pero si lo
dominas, cámbialos como quieras.
El personaje de la barra no necesita ningún sonido, los tendrá la pelota.
Así pues, otro personaje que necesitas es la pelota. Vuelve a escoger de la
galería igual que has hecho con la barra, en este caso yo he escogido la pelota
de nombre [Ball], la de color amarillo.
A la pelota tienes que anexarle los sonidos que deberá reproducir. Ve a la
pestaña [Sonidos] de arriba a la izquierda. Asegúrate de que tienes el
personaje de la pelota seleccionado.
La manera de proceder para añadir sonidos es
análoga a los personajes:
En panel de la izquierda de los sonidos, en la parte inferior tienes un pequeño
menú idéntico al de los personajes, puedes:
> Cargar des de archivo.
> Añadir un sonido al azar.
> Grabar tu propio sonido.
> Escoger un sonido de la galería.
Usa esta última opción de la lupa para escoger los sonidos de [Basketball
Bounce]. El sonido [Boing] ya lo tiene por defecto el objeto.

[8]
El tercer personaje va a ser una barra horizontal de color que irá en la parte
inferior del escenario y va a servir para detectar el final de la partida cuando
la pelota la toque.
Crea el personaje con el editor de dibujo y lo colocas en la parte inferior.
Bien, a este personaje le hace falta el sonido del final de la partida. Escógele
de la galería el sonido [Oops].
Te queda el escenario. Por de pronto, ve a cambiar el fondo blanco por uno
más adecuado y que le dé un poco de alegría al proyecto. Seleccionado el
escenario, creo que si te pongo la siguiente imagen vas a saber proceder sin
problema. Busca el fondo [Basketball 1] de la galería.

Hecho esto, necesita el sonido que va a hacer de música de fondo en el juego.


Pásate a la pestaña [Sonidos] del escenario y elige [Odesong] de la galería.
Si te fijas en el filtro de categorías está la de [Bucles] que son músicas
repetitivas que te van a ir muy bien como músicas de fondo en tus proyectos.
La programación
Llega el momento de programar. Te muestro los bloques de cada objeto y un
pequeño comentario, no analizo bloque a bloque.
El escenario
Baja el volumen y en una estructura repetitiva sin fin hace que toque una y
otra vez la música de fondo. Recuerda que los bloques rosas son los de la
categoría [Sonido].

La barra de fin de partida


La barra siempre va a estar comprobando si es tocada por la pelota, si pasa
eso, muestra un mensaje, toca el sonido de fin de partida y para el proyecto.
La barra de juego
Al empezar se posiciona en el centro horizontal y con una estructura
repetitiva siempre va a cambiar su posición horizontal a la posición que tenga
el ratón. La posición vertical es siempre fija, no quieres que la barra suba y
baje.
La posición del ratón la encuentras en la categoría [Sensores].

La pelota
Es el programa más complicado. Mi intención es que el rebote de la pelota
sea natural, que no sea un cambio de posición brusco ni parezca que la pelota
flota en el aire.
Para ello me apoyo en dos variables. Sé que poco o nada has trabajado hasta
ahora con las variables ya que las explico a fondo en el siguiente capítulo.
Llega un momento que si quiero hacer algo un poco complejo necesito
algunos recursos que están por explicar.
Sígueme:
- Ve a la categoría de bloques [Variables], de color naranja oscuro.
- Haz clic en el botón [Crear una variable] de la lista de bloques y en
el cuadro de diálogo que aparece escribe el nombre [velX] y da a
Aceptar, sin más.
- Repite la operación de [Crear una variable] y pon de nombre [velY]
y acepta.
De momento, hasta aquí, has creado dos variables con las que vas a trabajar
la velocidad horizontal y vertical de la pelota para que se mueva con
realismo.
Selecciona, no lo olvides, el objeto de la pelota para programarla.
Copia ahora el siguiente programa, tal cual, y luego te comento. Los bloques
naranjas oscuro pertenecen a la categoría [Variables].
Son los de [dar a … el valor …] y [sumar a…] no te entretengas mucho en
cavilar su funcionalidad, los estudiarás a fondo en el próximo capítulo.
Desmarca las casillas de la izquierda de las variables para que no se vea su
valor en pantalla.

Te explico los tramos de este programa:


1. Empieza el programa y coloca la pelota en el centro horizontal y a
cierta altura.
2. Asigna a las variables de velocidad un valor aleatorio para cada una.
A la que controla la velocidad horizontal será un número entre -10 y
10, con lo que la pelota podrá empezar el movimiento hacia la
izquierda si es negativo o hacia la derecha si es positivo. La variable
de la velocidad vertical será un número entre 5 y 15 que debe
entenderse como la fuerza con la que empezará a moverse.
3. Todo lo que venga ahora va dentro de una estructura repetitiva [por
siempre] que contendrá el flujo principal del programa.
4. A cada vuelta de la estructura repetitiva resta uno a la [velY] para
que caiga la pelota cada vez más rápido. Añade los valores actuales
de las velocidades a la posición de la pelota.
5. Comprueba si toca las paredes laterales, siendo así, cambia el sentido
del movimiento horizontal pasando de negativo a positivo y
viceversa modificando su valor actual multiplicado por -1.[9] También
suena el sonido de rebote.
Comprueba que la pelota toca la barra de juego. Si ocurre, suena el sonido del
choque y rebota la pelota empujándola hacia arriba dándole el valor 12 a la
velocidad vertical. Augmentado el valor a 15 rebota más.
Pues esto es todo en este ejemplo, espero que te haya divertido y te animo a
que les aportes creatividad con alguna cosilla que se te ocurra.

Modificar un sonido
He comentado ya cómo eliminar un sonido de un objeto. Acerca el ratón a su
icono y haz clic en el aspa azul de eliminación.
El hecho de que un objeto tenga asignados sonidos que no utilice no es
problema alguno, tan sólo provocaría que si exportas el proyecto a tu
ordenador ocupe más espacio.
Además de eliminarlos, los sonidos pueden modificarse. Scratch pone a tu
alcance un editor de sonidos con algunas posibilidades divertidas.
Con un sonido seleccionado se muestra esta pantalla de trabajo:

En la barra superior tienes el nombre del sonido, que puedes cambiar a tu


antojo, los botones de deshacer y rehacer y el botón de recortar.
Recortar
Recortar un sonido significa que quitas parte del audio que va a dejar de
oírse.
Para ello haz clic en el botón [Recortar] y aparecen unas marcas rojas que
puedes mover desde los botones de control superior o inferior. Esto, tanto por
la izquierda como por la derecha.
El área que queda ensombrecida de color rojo se va a eliminar en cuánto
hagas clic sobre el botón [Guardar]. Es el mismo botón [Recortar] que ha
cambiado de nombre.

Barra de efectos
En la parte inferior de la zona de trabajo hay más botones que no hace falta
explicar porque su nombre ya te dice qué significan. Dejo en tus manos que
compruebes los efectos que tienen. El efecto [Invertir] hace que suene del
revés.

Grabar un sonido
Algo que me parece potentísimo de Scratch es que puedes grabar tus propios
sonidos y usarlos en tus distintos proyectos.
Necesitas un micrófono, pero es tarea fácil. Te sirve el micrófono del portátil
si usas portátil. Si no, sin problema, los auriculares que hoy en día te regalan
cuando cambias de móvil te van a servir. Acostumbran a tener micrófono
incorporado. Mira la siguiente imagen.
Seguro que encuentras alguno por casa, lo conectas al ordenador y listo.
Para grabar el sonido debes seleccionar el siguiente icono de la parte inferior
del panel de sonidos:

En cuánto lo hagas es posible que el navegador que estés usando te pida


permiso para usar el micrófono. Será necesario permitirlo porque, en caso
contrario, no vas a poder grabar.
Hecho esto aparece una pantalla con un gran botón rojo para empezar a
grabar. Haz clic en ese botón y empieza a hablar o a hacer el sonido que
necesites hacia el micrófono. Para con el botón rojo de [Stop] cuando acabes.
Entonces Scratch te propondrá unos recortes por los extremos para quitar los
silencios. Haz la prueba de reproducción y ajusta como quieras. Si no estás
convencido puedes volver a grabar desde ahí mismo o [Guardar] si estás
conforme.

Una vez finalizado ya tienes tu sonido disponible. Te aconsejo que le cambies


el nombre. Lo podrás usar en el proyecto actual y en cualquier otro si lo
exportas haciendo clic derecho sobre el icono del sonido y escogiendo la
opción [exportar].

La extensión música
A parte de los bloques de sonido vistos hasta ahora, Scratch viene equipado
con una extensión de [Música]. Extensión que pone a tu alcance bloques que
te permiten tocar instrumentos.
Te recuerdo que el botón de las extensiones está en la parte inferior izquierda
de la pestaña de [Código].

Hazle clic y elige la extensión [Música].


He aquí los bloques de música, comentados rápidamente.

El primero te permite tocar percusión durante un tiempo determinado. Elige


el elemento de percusión de la lista.
El segundo aplica silencio.
El tercero toca una nota durante un tiempo.
Con el cuarto bloque cambias de instrumento.
Las notas musicales en Scratch vienen en notación inglesa. Yo, de tocar
música no sé nada, pero por lo que he podido descubrir la correspondencia de
las notas es esta:
DO C
RE D
MI E
FA F
SOL G
LA A
SI B

Los tres últimos bloques son para ajustar el tempo. El tempo en Scratch
controla lo rápido o lento que se tocan las notas musicales, el ritmo.
El tempo viene representado en golpes por minuto. Un valor de 60 implica un
golpe cada segundo. Cuanto mayor sea el valor más rápido se tocarán las
notas.
Los bloques permiten fijar el tempo, cambiarlo en el sentido de sumar o restar
valor y finalmente el bloque informativo que guarda el valor del tempo actual
y puedes usarlo en otros bloques o mostrarlo en pantalla.
No mucho más. Al final del libro he escrito una práctica para tocar el piano
usando estos bloques.
Capítulo 7: Trabajo con variables y
listas
Estás obligado a trabajar con variables siempre que necesites guardar un
valor. Como muestra: si necesitas guardar el nombre de un jugador. Si lo
guardas en una variable lo puedes usar en cualquier momento, por ejemplo,
para felicitarle al acabar un juego.

Definir variables
En programación está muy extendido el concepto de “declarar” una variable
y de “inicializar” una variable. Declarar una variable es establecer un nombre
y un “tipo” de dato que debe almacenar.
En programación textual, no por bloques, los nombres de las variables deben
cumplir ciertas reglas como: que empiece con un carácter alfabético, que no
contenga espacios, que no contenga ciertos símbolos…, pero Scratch no es
tan restrictivo así que no tendrás problema a la hora de escoger un nombre
para cada variable.
El tipo de datos indica qué clase de valores y rango de estos podrá almacenar
una variable. Volviendo a referirme a la programación textual, hay tipos de
datos para guardar texto, números, fechas, valores booleanos, objetos
(imágenes, ficheros, …) aunque Scratch no necesita esta especificación.
Puedes asignar un valor del tipo que sea directamente.
Técnicamente la declaración del nombre y tipo de una variable hace que el
programa reserve un espacio de memoria para su almacenamiento.
Sabiendo el tipo permite al proyecto realizar operaciones con las variables,
quiero decir que si una variable es de tipo numérico el programa puede
sumar, restar, etc. con esa variable. Y si es de tipo texto podrá concatenar
texto por los extremos, extraer una parte del texto, etc.
En Scratch no hace falta definir explícitamente el tipo de la variable, cómo
verás más adelante.
Si vas al panel de categorías de bloques y clicas en [Variables] verás que
Scratch ya te ha declarado una variable de nombre [mi variable]. La puedes
utilizar, pero seguramente quieras variables con tus propios nombres.
Tienes estos bloques a tu disposición:

Renombrar variables
Cabe decir en este momento que puedes cambiar el nombre a la variable que
Scratch ha definido por ti y así poderla utilizar.
Para ello haz clic derecho sobre el nombre del bloque ovalado de la variable y
escoge la opción [renombrar], establece el nombre que desees. Al aceptar
queda el cambio realizado.
Ten en cuenta que Scratch realiza el cambio de nombre por ti en todos los
usos que ya hubieras hecho de esa variable, es decir, sustituye el nombre de
la variable en los bloques de programa en los que aparezca.
Definir una nueva variable
Haz clic sobre el botón [Crea una variable], te pide el nombre que la va a
definir y un ámbito con 2 opciones: [para todos los objetos] o [sólo para este
objeto].
Una vez escrito el nombre y escogido el ámbito dale a aceptar y crea un
bloque nuevo de tipo informativo con el nombre de la variable. Este será el
bloque que utilices para hacer referencia al valor que contenga.
Ámbito de las variables
Si tienes alguna noción de programación clásica quizá te suenen estos
términos: variable global y variable local.
En Scratch se corresponden:
> Para todos los objetos = variable global
> Sólo para este objeto = variable local
El significado de todo esto, es que las variables definidas para todos los
objetos podrán ser leídas y modificadas en su valor por todos los objetos del
proyecto; mientras que las definidas sólo para este objeto son exclusivas y su
ámbito de modificación se ciñe al objeto en el que han sido definidas. Es
decir, los demás objetos las pueden leer, pero sólo el propietario puede
cambiarles el valor.
Voy a intentar dar un poco más de luz a este tema explicando un ejemplo de
uso de las variables locales ya que le dan ganas a uno de definirlas todas
globales.
Las variables locales son extremadamente útiles cuando quieres crear un
objeto plantilla, un clon, que necesites duplicar. Por ejemplo, en un juego
donde se deben hacer estallar burbujas, hay que crear un objeto [burbuja] que
tenga una variable local [velocidad], y ésta, debe guardar un valor
independiente, es decir, que cada burbuja tenga su propia velocidad.
Una buena técnica de programación en este caso es programar correctamente
una burbuja hasta perfeccionar todas sus funciones para luego duplicarla
tantas veces como burbujas deba haber en el juego.
Como cada burbuja tiene una variable individual de [velocidad], puedes
establecer a cada una la suya y no interferirán entre sí. A diferencia de si
[velocidad] es una variable global que entonces todas las burbujas siempre
tendrían la misma.

Intercambio de nombres
Un ejemplo sencillo al que quizá no le encuentres mucho sentido, pero se
usas muy a menudo en programación.
Se trata de intercambiar el valor de dos variables. Para ello vas a necesitar
una tercera variable. La funcionalidad es:
Guarda el valor de V1 en V3.
Guarda el valor de V2 a V1.
Guarda el valor de V3 a V2.
Sin esta variable de intercambio perderías el valor de una de ellas, lo
machacarías.
Vas a hacer el ejemplo intercambiando el nombre de dos personajes cada vez
que tocas la tecla espacio.

Añade un personaje al proyecto, una mariposa.


Crea 3 variables como puedes ver en la imagen.
Ahora programa a la gata:

Al empezar inicializa las variables y haz que la gata diga su nombre en todo
momento.
Cuando se toca la tecla del espacio se hace el intercambio de nombres. En la
mariposa tan sólo tienes que programar que diga su nombre siempre.

Visibilidad de las variables


Desde el momento de la definición de una variable Scratch te ha creado un
bloque con su nombre y al lado una casilla de selección que indica si es
visible en el escenario o no.

Si das un vistazo al escenario la verás allá en un rincón.

Desmarcando la casilla haces que no se muestre, aunque es perfectamente


operativa en la programación.
Modo de visibilidad de las variables
Una variable se puede ver de tres formas distintas. Para cambiar entre esas
formas haz doble clic sobre la variable en el escenario o clic derecho sobre la
misma y escoge el modo.
Los modos son tamaño normal, tamaño grande y deslizador.

Echo de menos una opción en la versión 3 de Scratch que sí existía en la 2. A


la forma de deslizador se le podían fijar los límites numéricos para que el
usuario no pueda escoger valores fuera del rango que te interesa. Se hacía
haciendo un clic derecho en el deslizador y escogiendo la opción [fijar rango
del deslizador].
Quizá en el momento que tú lo pruebes ya se haya solucionado, pero hoy esta
opción no existe.

Asignar valores a las variables


Para asignar un valor a una variable debes usar este bloque:

En el parámetro dónde ahora se ve un cero escribe el valor que deseas


almacenar. Ya sea un número o un texto. Ya expliqué que Scratch es muy
flexible con los tipos de datos. No hace falta declararlos tan sólo con escribir
el contenido Scratch ya interpreta de qué tipo son.

En el escenario se muestran estos valores mientras las variables son visibles y


se haya ejecutado el programa.
Una buena praxis es siempre dar un primer valor a una variable cuando
empieza un programa, un valor inicial, inicializarla.
Variables como contadores o acumuladores
Un uso muy extendido de las variables es utilizarlas como contador. Por
ejemplo, como contador o acumulador de puntos, de vidas, de vueltas…
Como buena práctica al principio del programa asigna un valor inicial de la
variable para inicializarla.
Para ello está el bloque [sumar a …] que te sirve para incrementar, o
decrementar si el valor es negativo, el valor actual de la variable en la
cantidad indicada.

En esta imagen programas el incremento en 2 de la variable [Puntos] que


podrías usar, por ejemplo, cuando se consigue encestar un tiro de campo en
un juego de baloncesto.
Variables en la nube
Las variables en la nube son variables que comparten el valor con todos los
usuarios que conecten con el proyecto compartido.
Imagina que creas un juego que quieres compartir con tus amigos y necesitas
guardar el nombre y puntuación récord para que sea común a todos los
usuarios.
Para el uso de las variables en la nube uno debe convertirse en Scratcher.
Recuerda, un Scratcher es un usuario de Scratch que es muy activo en la
comunidad: comparte proyectos, hace likes, etc.…
Listas
Has visto qué son y cómo funcionan las variables. Y son muy útiles, pero su
función se queda corta si te expongo algunos casos.
Necesitas que un programa te guarde todas las cosas de la lista de la compra
semanal o necesitas que un programa haga una carta de los Reyes Magos para
tus hijos.
¿Cómo lo gestionas; en el primer caso defines 20 variables para cada uno de
los elementos que debes comprar o mejor defines 30 o 40?
Ya no te digo nada con las interminables listas de juegos y juguetes de los
Reyes Magos.
Scratch te soluciona estos problemas con una funcionalidad que se llama
listas. Las listas están compuestas de elementos y cada elemento es una
variable. Así que cada elemento de la lista funciona como una variable
individual. Todas las variables de una lista tienen el mismo nombre y un
índice con el que referenciar la posición que tiene esa variable dentro de la
lista. Lo práctico es que, con una lista, no es necesario saber de antemano
cuántos elementos va a tener; puedes añadir y quitar elementos según tus
necesidades. Así, en los casos comentados al principio, puedes crear la lista
[Lista de la compra] e ir añadiendo elementos siempre que quieras. También
puedes crear la lista [Carta a los Reyes Magos] y que tus hijos vayan
añadiendo elementos. Después puedes ajustar la lista y eliminando alguno si
fuera necesario.
A continuación, te muestro cómo se ve una lista en pantalla.
Se ven los elementos ordenados por orden de entrada.
Informa de la longitud de la lista, aunque no quepan todos los elementos en la
vista.
Se puede agrandar o achicar el cuadro arrastrando por el signo igual de abajo
a la derecha de la lista.
Definir una lista
Las listas están en la misma categoría de bloques que las variables. Para
declarar, es decir, crear, una nueva lista haz clic en el botón [Crea una lista],
le pones el nombre que la debe definir y el ámbito, de la misma manera que
haces con una variable individual. Automáticamente Scratch te añade bloques
para programar con ellas. Son de un color naranja fuerte:
> [Añadir … a lista]: añade un nuevo elemento con el valor pasado por
parámetro que le pongas. Con este bloque, el valor se añade siempre
al final de la lista. Si ya hay 3 valores este será el de la posición 4.
> [Eliminar … de la lista]: elimina el valor de la posición pasada por
parámetro de la lista.
> [Insertar … en … de la lista]: añade un nuevo elemento con el valor
pasado en el primer parámetro en la posición pasada en el segundo
parámetro de la lista. Los valores que había a partir de esa posición
corren una a la derecha, es decir, si insertas el valor en la posición 2;
aquel que estaba en la 2 pasa a la 3, el de la 3 a la 4 y así con todos
los valores que contenga.
> [Reemplazar elemento … de la lista con …]: substituye el valor que
tenía el elemento con la posición pasada en el primer parámetro y le
asigna el valor pasado como segundo parámetro. No hay cambio de
posición de ningún elemento.
> Bloques informativos:
[Elemento … de la lista]: retorna el valor de la posición
pasada por parámetro.
[# de elemento de … de la lista]: retorna la posición que
ocupa el elemento que tiene como valor lo que se pasa por
parámetro. Si el elemento no está en la lista devuelve cero.
[Longitud de lista]: te dice cuántos elementos tiene la lista.
> [¿… está en lista?]. Es un bloque condicional que te devuelve
verdadero o falso si la lista contiene algún elemento igual al valor
pasado por parámetro. Te puede servir en estructuras repetitivas o
condicionales.
> [Mostar lista]: muestra la lista en el escenario.
> [Esconder lista]: esconde la lista del escenario.
Más adelante planteo un gran reto con listas de variables. Ahora un pequeño
ejemplo.
Crea un nuevo proyecto, una lista y dos botones en el escenario. Un botón
añade números consecutivos y el otro borra el último elemento de la lista.
Crea la lista con el nombre [Lista de números], tal como acabo de explicar.
Añade dos objetos y quita el gato:

En el objeto [Button4] programa lo siguiente:

Hay varias cosas dentro de otras. Primero coloca un bloque de [añadir … a


lista].
En el parámetro pon un operador de suma. En el primer operando por un
bloque [elemento … de lista], en el parámetro de este bloque añade el bloque
[longitud de lista], finalmente en el segundo operando del bloque de la suma
pon un 1.
Se añade el último elemento + 1 a la lista. Es decir, si el último elemento es el
2 se añade el 3, si el último elemento es el 5 se añade el 6. Si no hay
elementos, se considera que hay un cero y se añadirá el 1.
Con los tres bloques finales añado un efecto al clic.
En el botón [Button5] programa lo siguiente:

Eliminará el último elemento de la lista. El último elemento siempre lo dicta


el bloque [longitud de lista], por eso lo pasas por parámetro.
Y el efecto del clic.
Prueba el proyecto a ver qué tal.
Con el proyecto ejecutándose, cada vez que hagas clic al botón [Button4]
añadirá un elemento a la lista con el número que toque. Cuando hagas clic al
botón [Button5], eliminará el último.
Capítulo 8: Los algoritmos y las etapas
de resolución
La mochila
Ahora que sabes bastante Scratch y eres capaz de hacer buenos y bonitos
proyectos te comento un tema cortito que no da para un capítulo. Y creo que
aquí es buen momento y lugar para ello.
Se trata de la mochila. La mochila es una funcionalidad que te permite
arrastrar dentro disfraces, objetos, sonidos y programas. Al tenerlo guardado
en la mochila puedes reutilizarlo en otros proyectos arrastrando desde ella al
nuevo proyecto.
Imagina, has trabajado mucho en una funcionalidad para mover un personaje;
pues te puede servir para mover otro personaje de otro proyecto. Pasa el
programa a la mochila y des del otro proyecto lo recuperas.
La mochila está allá abajo, al final de la pantalla, no ocupa mucho porqué
está recogida.

Si le haces clic se expande dejando un espacio para arrastrar aquello que


quieras guardar en la mochila. Un objeto, un programa, un disfraz, un
sonido…

Arrástralo desde su sitio dentro de la mochila.

La pega que le encuentro a la mochila es que está todo ahí mezclado. A ver si
en futuras versiones está mejor organizada. Por tipos de elemento, por
ejemplo.

Los algoritmos
Antes de ponerte a programar es muy recomendable coger lápiz y papel para
pensar el algoritmo del proyecto.
Hacer un algoritmo consiste en diseñar cómo será la secuencia de
instrucciones (los bloques) que van a representar el problema o reto que
tengas delante y que te deben conducir a la solución. Los algoritmos son
independientes del lenguaje con qué estés programando ya que se escriben en
lenguaje natural, más o menos. También se les llama pseudocódigo.
Un algoritmo debería ser preciso, sin ambigüedades, debe terminar en algún
momento y debe producir un resultado.

Las etapas de resolución de un reto o problema


con la programación informática
1. Análisis del problema, definición y delimitación. Considerar los
datos de entrada, el proceso que se debe realizar y los datos de salida.
2. Diseño del algoritmo en pseudocódigo y diagramas.
3. Prueba: seguimiento manual de los pasos. Se hace con valores bajos,
altos o especiales como valores cero, texto, etc.
4. Codificación: transcripción del algoritmo al lenguaje de
programación. En nuestro caso Scratch.
5. Ejecución: Pones en marcha tu proyecto para comprobar su
funcionamiento.
6. Depuración (debug): es la fase de detección, localización, corrección
y eliminación de errores que te llevan a un mal funcionamiento del
programa o proyecto.
7. Evaluación de resultados: el programa no da errores, pero debes
comprobar que los resultados a los que te lleva son correctos.
Soy consciente de que no siempre vas a hacer algoritmos y te vas a poner
directamente a programar los bloques de Scratch. Y, posiblemente, llegues a
buen puerto porque los retos son pequeños. Si te enfrentas a un reto mayor es
altamente recomendable hacer un análisis previo del reto y esquematizar
mínimamente.

Reto con variables


Viniendo del capítulo anterior, seguramente ha quedado sobre la mesa
proponerte un reto que necesita del uso intensivo de variables para ser
resuelto.
Análisis del problema, definición y delimitación
El objetivo del proyecto consiste en adivinar un número entre 1 y 50 en el
menor número de intentos posibles.
Debes dar la pista de si el número pedido al jugador es menor o mayor que el
número secreto.
Más cosas:
> El número secreto debe ser aleatorio en cada partida.
> Pedirás número al jugador por pantalla.
> El juego acabará cuándo el número pedido coincida con el número
secreto, mientras no sea así el programa deberá pedir otro número.
> Comprueba si el número actual es menor o mayor que el número
secreto e informa al jugador de ello.
> Se deben mostrar en pantalla el número de intentos que lleva y el
último número jugado.
> Cuando el jugador acierte el número secreto ya no pidas más
números y le informas de que ha ganado.
> Debes guardar el récord mínimo de intentos. Con lo que en cada
partida se deberá comprobar si lo ha superado.
> Hecho todo esto, la partida acaba.
Diseño en pseudocódigo y diagramas
El diagrama puede ser este:
Y el algoritmo este:
[Secreto] = número aleatorio entre 1 y 50
[Actual] = 0
[Intentos] = 0
Repetir Hasta que [Actual] = [Secreto]
Preguntar un número y esperar
Guardar respuesta en [Actual]
Aumentar [Intentos]
Si [Actual] < [Secreto] entonces Decir “El número es mayor”
Si [Actual] > [Secreto] entonces Decir “El número es menor”
Fin Repetir Hasta
Decir “¡Has ganado! y lo has hecho en” [Intentos] “ intentos”
Si ([Récord] = 0 O [Intentos] < [Récord]) entonces
[Récord] = [Intentos]
Decir “¡Nuevo récord!”
Fin Si
NOTA: No inicializo la variable [Récord] expresamente para que se
mantenga su valor en cada partida de la sesión.
Prueba manual
Ahora toca probar el pseudocódigo con valores que te inventes para seguir
manualmente los pasos y darte cuenta si algo está fallando o no llegas a
obtener el resultado esperado. Para ello inventa un valor a la variable
[Secreto] e imagina los números que va entrando por pantalla el jugador, a
ver si sale bien.
Mi propuesta es que hagas una tabla con el valor de las variables en cada
paso para ir comprobando si el funcionamiento es el esperado. He imaginado
que el número secreto es 20 y que los números que voy a decir son el 25, 18 y
finalmente el 20:
Iteración Secreto Actual Intentos Récord Texto en pantalla
1 20 0 0 0
2 20 25 1 0 El número es menor
3 20 18 2 0 El número es mayor
¡Has ganado! Lo has hecho en 3 intentos. ¡Nuevo
4 20 20 3 3
récord!
Codificación
La imagen anterior reproduce el código de bloques Scratch que transcribe el
algoritmo planteado.
Fíjate bien en las estructuras repetitivas y condicionales, cómo están puestas,
qué estructuras van dentro de qué otras, cuándo acaban unas y empiezan las
otras, qué bloques contiene cada una, etc.
Ejecución
Es hora de probar el programa. Debes ejecutarlo varias veces y con ejemplos
diversos y valores extremos: valores cero, negativos, de texto, valores de
límite, etc. En tu caso los valores límite podrían ser el 1 y el 50 que delimitan
el rango del número aleatorio según la definición del reto.
Depuración
Si el programa informa de errores de programación o no funciona como
esperas es momento de corregirlo hasta que se ejecute de principio a fin sin
pararse debido a un error.
Scratch no informa de errores de programación como lo hacen otros
lenguajes textuales. Así que no cometerás errores, pero lo que te puede pasar
es que el programa no haga lo que esperas de él, que no funcione como tú
quieres.
Evaluación
Analiza si el resultado que obtienes es bueno después de ejecutar el
programa. ¿El conteo de intentos es correcto? Por ejemplo.
Puedes mostrar momentáneamente el valor del número secreto para ver si el
proyecto se detiene cuando lo adivinas o no. A esta práctica, los
programadores, la llamamos poner un chivato.
Comprueba si el valor del récord lo gestiona bien.
¿Los mensajes son correctos?
¿El programa acaba cuándo debe acabar?

Reto con listas


Reto importante. Vas a programar el juego del ahorcado.
Cabe decir ahora que la resolución a un reto o problema de programación
tiene muchas y diversas soluciones, no solo una. Cada programador aporta a
un programa su estilo propio.
Lo importante en programación es que se obtenga el resultado deseado. Si el
código es más o menos elegante quizá sea lo de menos. Sobre todo, cuando
estás empezando.
Bien es cierto que algunos programas consiguen lo mismo que otros y están
más optimizados porque lo hacen en menos tiempo, son más claros o usan
funciones más avanzadas. Pero eso es harina de otro costal y no tiene cabida
en este libro. En tu caso debes empeñarte en obtener el resultado deseado, tan
sólo eso.
El análisis, definición del problema, creo que no será necesario porque ya
conoces las reglas del juego del ahorcado.
Pongo, tan sólo, algunas limitaciones:
> Inicialmente llenarás una lista de palabras relacionadas con Scratch
de las que será escogida una como palabra secreta para jugar. Yo
propondré 15 en mi programa, pero tú puedes, evidentemente, poner
más o cambiar la temática, por supuesto.
> El número de errores permitidos que va a disponer el jugador al
empezar cada partida será de 6 e irá disminuyendo cada vez que
cometa un fallo.
> Si consume esos 6 fallos el juego acabará informando de que el
jugador está ahorcado. Si no es así el juego acabará dando la
enhorabuena al jugador.
> Tienes que ver en pantalla: los errores restantes, las letras que vayas
acertando de la palabra secreta y la lista de letras ya dichas.
Yo no voy a ir más lejos con el programa, pero te reto a que lo hagas más
atractivo poniendo un escenario bonito y añadiendo efectos de sonido o una
música de fondo.
También puedes caracterizar el típico dibujo del muñeco colgado que vas
haciendo cuando juegas en casa y al que, en cada fallo del jugador, le añades
una parte: la cuerda, la cabeza, el cuerpo, un brazo, el otro brazo… Es fácil si
creas un personaje con 6 vestidos, uno con una parte más que el otro y en el
programa usas el bloque [siguiente vestido] a cada fallo del jugador.
Yo no lo voy a hacer para que el código de bloques sea lo más sencillo
posible y no se alargue más de lo necesario.
El algoritmo y el código
No es un reto fácil, muchos bloques van dentro de otros, debes estar atento y
debes saber que todas las secciones de bloques que vas a ver van encajadas
unas debajo de las otras en el orden de las imágenes, ya que no cabe todo el
programa en la misma página.
Vas a necesitar:
> Una lista [Palabras] con las palabras secretas.
> Una lista [Letras]. Será la típica fila de guiones que haces en papel
para determinar cuántas letras tiene la palabra.
> Una lista [Letras dichas] con todas las letras que ya haya dicho el
jugador en la partida actual.
> Variable [Letra]. La usarás para guardar la letra actual que te dice el
jugador.
> Variable [Palabra]. La palabra secreta escogida para la partida actual.
> Variable [Errores restantes]. Tendrá el valor 6 al empezar el juego.
> Variable [Ha acertado]. Te ayudará a saber si la letra que el jugador
ha dicho está en la palabra secreta.
Lo primero que debe hacer el programa es inicializar las variables y listas
necesarias. Observa que las frases que empiecen con dos barras // en el
algoritmo debes considerarlas como un comentario que hago, no es código,
no las escribas en el programa de Scratch. Aquí empieza el algoritmo.
// Voy a inicializar las listas que se usan en el proyecto
Eliminar todos los elementos de la lista [Letras]
Eliminar todos los elementos de la lista [Palabras]
Eliminar todos los elementos de la lista [Letras dichas]
// La variable [Errores restantes] la inicializo a 6 ya que el jugador debe
empezar con ese margen según las reglas.
FIJAR [Errores restantes] a 6
// Voy ahora a llenar la lista [Palabras] con 15 palabras relacionadas con
Scratch
Añadir “PROGRAMA” a la lista [Palabras]
Añadir “ALGORITMO” a la lista [Palabras]
Añadir “VARIABLE” a la lista [Palabras]
Añadir “BLOQUE” a la lista [Palabras]
Añadir “SENSORES” a la lista [Palabras]
Añadir “PERSONAJE” a la lista [Palabras]
Añadir “POSICIÓN” a la lista [Palabras]
Añadir “ESCENARIO” a la lista [Palabras]
Añadir “DISFRAZ” a la lista [Palabras]
Añadir “COMUNIDAD” a la lista [Palabras]
Añadir “BANDERA” a la lista [Palabras]
Añadir “EJECUTAR” a la lista [Palabras]
Añadir “ESTRUCTURA” a la lista [Palabras]
Añadir “EVENTO” a la lista [Palabras]
Añadir “SONIDO” a la lista [Palabras]

Codificado queda así:


// Voy ahora a inicializar la variable [Palabra] escogiendo un elemento al azar
de la lista [Palabras]. Para ello empleo el operador [Número al azar entre X e
Y]. En mi caso será entre 1 y la longitud de la lista [Palabras].
FIJAR la variable [Palabra] al ELEMENTO (número al azar entre 1 y
LONGITUD de la lista [Palabras]) de la lista [Palabras]
// Seguidamente inicializo la lista de [Letras] toda a guiones. Tantos como la
longitud de la palabra escogida aleatoriamente que está guardada en la
variable [Palabra].
REPETIR HASTA longitud de la variable [Palabra]
Añadir – a la lista [Letras]
FIN REPETIR
// Por último añado un mensaje para el jugador ya que no se ve muy
claramente cuántos guiones tiene la lista [Letras]. Le voy a decir al jugador
cuántas letras tiene la palabra secreta.
DECIR DURANTE 2 segundos (UNIR “La palabra tiene “ CON (UNIR
longitud de la variable [Palabra] CON “ letras.”))

Ahora es un buen momento para probar ya si funciona el programa hecho


hasta ahora. Filosofía divide y vencerás. Mira a ver si el reto de inicializar las
variables funciona, si escoge diferentes palabras cada vez, si calcula
correctamente la longitud, si escribe los guiones exactos, etc. Asegúrate de
que se muestran todas las variables ahora.
// Pongámonos con la rutina del juego, es decir, la parte dónde se desarrolla
su mecanismo. Si ves que en la primera lectura todo te parece un lío de aúpa,
no te preocupes. Seguramente lo entenderás mejor programando poco a poco
los bloques y viendo el efecto que producen a medida que los vas añadiendo.
El juego va a constar de una repetición principal con dos posibles salidas:
1) Que ya no queden guiones en la lista [Letras], con lo que el jugador
ha acertado todas las letras y ha ganado.
2) Que ya no queden errores, la variable [Errores] restantes tendrá el
valor cero y el jugador habrá perdido.
Mientras no pase ninguna de esas dos circunstancias debes:
1) Pedir una letra al jugador y añadirla a la lista de [Letras dichas].
2) Presuponer que el jugador no acertará asignando el valor NO a la
variable [Ha acertado]. Es dar un valor inicial acorde a lo que vas a
programar.
3) Prepararte para recorrer las posiciones de la palabra secreta
inicializando una variable [Posición] a 1.
4) Recorrer, con una estructura [repetir n veces] interior tantas veces
como longitud tenga la palabra secreta.
5) Para cada repetición, es decir, para cada posición de la palabra
secreta:
a. Comprueba si la letra coincide con la respuesta del jugador
(con la letra que ha dicho)
b. En caso de ser cierto cambia la lista [Letras] substituyendo el
guion por la respuesta. Y cambia el valor de la variable [Has
acertado] a SI para saber más tarde que el jugador ha
acertado.
c. En caso de ser falso no hagas nada hasta la próxima vuelta
del REPETIR.
d. Después de comprobar si hay acierto o no, en cualquier caso,
tienes que aumentar el contador [Posición] para que en la
siguiente vuelta del REPETIR compruebe la siguiente
posición de la palabra secreta.
6) Al salir de esta repetición que recorre toda la palabra debes preguntar
si ha acertado. Ese dato lo guarda la variable [Has acertado]. Si ese
valor es “NO” debes disminuir el valor de la variable [Errores
restantes] en -1. Es decir, ha cometido un fallo.
7) Finalizada la estructura REPETIR y comprobado el acierto habrás
recorrido todas las letras de la palabra secreta y en caso de acierto se
habrá substituido el guion de la lista [Letras] con la respuesta que dio
el jugador (la letra que propuso). En caso de error ya se habrá
contabilizado.
8) Ahora toca otra vuelta del REPETIR exterior, el que no acaba hasta
que se haya ganado o perdido. Así que dentro de la siguiente vuelta
volverá a pedir una letra al jugador y se harán las comprobaciones de
acierto. Y en caso de no haber ganado ni perdido todavía dará otra
vuelta preguntando otra letra.
9) Cuando salga del REPETIR exterior significará que el jugador ya ha
ganado o perdido. Te queda averiguar cuál ha sido el motivo de la
salida y enviar un mensaje en consecuencia.
Menudo reto.
Lo dicho, no te preocupes si algo (o todo) está por ahí flotando y no lo acabas
de visualizar. Te muestro ahora los bloques de cada sección comentada. Los
puedes ir programando mientras los ves y comprobar el efecto que hacen en
Scratch.
Te pongo ahora todo el programa que falta y que debes encajar tras los
bloques anteriores.
Sé que me salto la parte del algoritmo. Debería acabarlo, pero, con la
explicación que te he hecho sobre el funcionamiento, ya puedes pasar
directamente a la programación.
La repetición principal.
Tienes dos posibles salidas, por ello necesitas un operador booleano [O].

En el primer operado debes poner la expresión que evalúe si quedan guiones


en la lista [Letras]. Tienes que negar el bloque que te informa si en una lista
hay un guion.
Te dice si hay un guion en la lista, por tanto, debes negar esa expresión para
que el [repetir hasta] salga cuando ya no haya ninguno. Si no lo negaras
saldría a la primera porque la lista [Letras] está llena de guiones al empezar.
La segunda condición de salida es que ya no haya [Errores restantes]. Lo
programas así.

Con todo ello, así queda la estructura [repetir hasta] con las dos condiciones
de salida unidas con un operador O. Una vez más, esta estructura hará
iteraciones (hará vueltas) mientras no se cumpla una de las dos condiciones
de salida: que no queden guiones (ganar) o que no queden errores restantes
(perder).

Dentro de la estructura repetir pide al jugador que te diga una letra y, cando
lo haga, la almacenas en la lista de [Letras Dichas]. Esta lista te sirve para
informar al jugador de qué letras ha dicho ya:

Sigue dentro de la estructura repetir e inicializa dos variables: [Has acertado]


a valor NO y [Posición] al valor 1.
La variable [Has acertado] te sirve para saber si la letra propuesta por el
jugador existe en la palabra secreta. Si se da el caso la cambiarás a SI y
actuarás en consecuencia más adelante.
La variable [Posición] te va a servir para recorrer la palabra secreta letra a
letra, posición a posición. Va a guardar en todo momento que posición de la
palabra estás comprobando.
Si te fijas, esta inicialización se produce dentro de cada repetición; es lógico
porqué para cada letra que te diga el jugador, de inicio, debes suponer que no
existe y debes recorrer la palabra otra vez des del principio.

Ahora pon la estructura [repetir n veces]. Las veces que debe repetirse lo
indicará la longitud de la variable [Palabra] que contiene la palabra secreta de
esta partida. Ten presente que tienes un [repetir] dentro de otro [repetir].

Mira lo que se debe hacer dentro de este repetir. Dos cosas.


La primera: comprobar si la posición actual de la palabra coincide con la letra
propuesta por el jugador:
Necesitas un operador de comparación

En el primer operando la letra de la palabra secreta que corresponde a la


posición actual

En el segundo operando la letra propuesta por el jugador que la tienes


guardada en el bloque [respuesta].

Todo junto queda así:


Dentro de esa estructura [si-entonces] pon dos acciones que se ejecutaran
cuando la condición del [si] sea cierta, consecuentemente, cuando hay un
acierto.
Cambia el guion por la respuesta (la letra acertada) y modifica el valor de
[Has acertado] a SI.
Todo metido en la estructura SI:

Fuera ya de este último [si-entonces] debes aumentar la variable [Posición]


de manera que en la siguiente iteración de la estructura [repetir] compruebe la
siguiente letra.
Recuerda que debe comprobar todas las letras de la palabra secreta. No por el
hecho de haber acertado una ya debes parar de comprobar. Podría darse el
caso que la letra propuesta por el jugador apareciera más de una vez en la
palabra.

Después de acabar este [repetir] interior te falta una tarea que programar. Si
el jugador no ha acertado le debes quitar un intento restante, es decir, debes
disminuir el contador de [Errores restantes] en -1. Esto significa que ha
recorrido todas las letras de la palabra secreta y la letra propuesta no está.
Como que se trata de una comprobación necesitas una nueva estructura [si-
entonces] donde preguntar si ha habido acierto. Creo que la imagen no
necesita más explicación.

Con todo lo que llevas programado hasta ahora el programa va pidiendo


letras al jugador, recorre la palabra secreta letra a letra y va comprobando si
coincide. En caso de que ocurra substituye el guion por la letra propuesta y,
al acabar el recorrido de la palabra comprueba si ha habido acierto para restar
o no un intento.
Bien. Este proceso lo va a repetir tantas veces como sea necesario mientras
no pase una de estas dos circunstancias ya comentadas anteriormente: que no
queden guiones en la lista de letras o que no queden errores.
Por tanto, si el programa ha llegado a este punto es que alguno de estos dos
casos ha ocurrido. Es hora de averiguar qué ha pasado, mostrar un mensaje y
acabar el programa.
Necesitas una estructura [si-entonces-sino] ya que quieres comprobar dos
casos. Pregunta si el valor de la variable [Errores restantes] es cero.
Si es así el jugador ha perdido, con lo que muestra el mensaje
“¡AHORCADO!” y seguidamente otro mensaje con la palabra secreta para
que no se quede con las ganas de saber qué palabra era.
De otra manera es que el jugador ha ganado y muestras el mensaje “¡HAS
GANADO!”.
Así que tan sólo queda programar el fin de la partida.
Ya para acabar, es conveniente no mostrar algunas variables.

Ahora el reto de hacer bien atractivo este juego pasa por añadir un escenario,
cambiar el personaje, incorporar algún sonido… lo que dé la imaginación.
He de decirte también que en la versión 2 de Scratch las listas se podían ver
en horizontal lo que te vendría muy bien en este juego. Bueno, no pasa nada,
estira hacia abajo por el borde y hazlas muy altas para jugar mejor.
Un par de pantallas de cómo me ha quedado a mí.
Capítulo 9: Enviar y recibir mensajes
Un mensaje que se envía a través del programa Scratch se llama transmisión.
Las transmisiones se envían con los bloques [enviar] y [enviar y esperar], y
son recibidas por el bloque de tipo sombrero [al recibir].
Son similares a los eventos, que son bloques que se activan cuando se
realizan determinadas acciones del ratón o el teclado.
Los mensajes deben ser entendidos como un identificador, como una señal o
un aviso. No son mensajes de texto como los de WhatsApp, son nombres
identificativos que permiten ejecutar ciertos programas en ser recibidos.

Los bloques de enviar mensajes

Este bloque hace la transmisión del mensaje “Inicial nivel” y sigue


ejecutando los siguientes bloques que tuviera por debajo.

Este bloque realiza la transmisión del mensaje especificado y congela su


programa hasta que todos los programas de recepción hayan finalizado.

Este bloque permanecerá inactivo hasta que reciba la transmisión del mensaje
especificado. Una vez que se ha recibido, el programa entra en acción y
finaliza, pero se puede iniciar más de una vez, en cuanto vuelva a recibir el
mismo mensaje.
Los bloques de recibir mensajes pueden estar programados en muchos
objetos a la vez, por ejemplo, si el jugador gana una partida puedes emitir un
mensaje a todos los objetos para que dejen de moverse. Cada uno de éstos
debería tener programado un trozo de código que empiece con [al recibir
mensaje].
Las historias interactivas
Un uso muy extendido de Scratch son las historias interactivas. Proyectos que
explican aventuras con personajes que hablan, se mueven e interactúan con
diferentes escenarios. Como explicar un cuento o una película.
Puedes emplear dos técnicas básicas para explicar estas historias:
1) Sincronizando tiempos de hablar y esperar.
2) Enviando mensajes.
Antes cabe decir que, si estás frente al reto de contar una historia, coge lápiz
y papel y prepara un guion, tal y como se hace en las películas.
Explico un chiste
Voy a preparar un proyecto para explicar un chiste entre dos personajes.
Primero usaré la técnica de hablar y esperar para coordinar las frases y, una
vez conseguido, transformaré el código para obtener el mismo resultado con
la técnica de mensajes.
En un nuevo proyecto cambio el fondo a uno más atractivo y añado dos
personajes nuevos a mi proyecto desde la galería.

El entrañable gato no me va a hacer falta así que lo


elimino con un clic del botón derecho.
Añado los personajes de MONET y KIRAN y los sitúo en el escenario:
Preparo el guion del chiste:
MONET: Hola Kiran
KIRAN: Hola Monet
MONET: ¿Sabes que mi hijo va en bicicleta des de los 4 años?
KIRAN: ¡Ui, pues debe estar muy lejos ya!
MONET y KIRAN: se ríen.
Técnica de decir y esperar
Ahora debo coordinar las frases y la espera en el programa de cada uno, voy
allá.
MONET KIRAN
Decir frase “M1” durante Esperar 2 segundos
2 segundos
Esperar 2 segundos Decir frase “K1” durante
2 segundos
Decir frase “M2” durante Esperar 2 segundos
2 segundos
Esperar 2 segundos Decir frase “K2” durante
2 segundos
Reír Reír
Fíjate que uso la nomenclatura K1, K2, M1, M2 en la preparación del guion.
Lo hago para saber qué frase toca cada vez: las que empiezan con M son del
personaje Monet y las que empiezan con K son del personaje Kiran. Además,
el número que le pongo detrás me ayuda a saber el orden. Esto te va a ser
muy útil cuando trabajes con mensajes.

Los programas de cada uno:


MONET

KIRAN

Técnica de transmisión de mensajes


Voy a cambiar el código para conseguir el mismo propósito usando la técnica
de mensajes entre personajes.
Elimino los bloques de [esperar]. Los de [decir] voy a conservarlos.
Observa en las imágenes el resultado de los dos programas.
Se aprecia el control que tengo sobre la secuencia de los mensajes. La
consigo identificando cada uno con la inicial del personaje y el número de
orden.
De otra manera se hace muy complicado.
MONET

Vistas las dos técnicas te recomiendo encarecidamente que, si tu historia es


larga o si aparecen en ella varios personajes, usa la técnica de los mensajes.
Coordinar todo ello con esperas será arduo y tedioso porqué deberás ir
sumando esperas con los tiempos de los mensajes de los personajes que van
hablando mientras uno está callado.
KIRAN
He de comentarte también que es usual que el control de los proyectos de
Scratch lo lleve el escenario.
Sí, el escenario. El escenario se puede programar y es un buen lugar para
gestionar la lógica del proyecto con envío y recepción de mensajes.
Para ello selecciona el escenario en el panel de abajo a la derecha y ve a la
pestaña [Código], si no estás ya.
Notarás que la lista de bloques se ha reducido con lo que algunos de ellos no
están disponibles, como los de movimiento. El escenario no se puede mover.
En el escenario se pueden programar partes del proyecto que no actúan
directamente sobre un personaje, sino que repercuten al funcionamiento
general. Por poner unos ejemplos: el control de los niveles de juego, el
tiempo, puntuaciones, etc.
Capítulo 10: La guerra de los clones
Con los clones no vas a necesitar crear un personaje para cada entidad, es
decir, si programas un juego de “marcianitos” y necesitas 15 marcianitos no
hace falta crear 15 personajes iguales. Con definir uno bien programado,
creas el resto con clones.
Cabe aclarar que para utilizar esta técnica los personajes funcionaran de la
misma manera todos, sin excepción. Si hay marcianitos que se deben
comportar de manera diferente sí que estarás obligado a crear distintos
personajes y clonarlos por separado.
Con esta práctica la depuración de la programación y el mantenimiento se
simplifica ya que el código de bloques está en un solo objeto.

Funcionamiento de los clones


Cada clon va a ser una copia exacta de un objeto y se va a caracterizar por:
> Ejecutará los mismos bloques de programación que el objeto
clonado.
> Cuando el clon es creado aparece en la misma posición que tuviera el
objeto original. Con ello, lo habitual, es que el primer bloque sea
para posicionar el clon.
> Cada clon es exactamente igual que objeto original, pero en una
instancia[10] separada. Una instancia se define como la ocurrencia de
un determinado objeto, una copia.
> Al ser una copia cada clon funciona por separado en un hilo de
programación distinto[11]. Con ello, puedes tener tres clones creados
en un mismo momento y posicionar cada uno en un sitio distinto con
el operador de número al azar, por ejemplo.
> Cada instancia hereda del objeto original los programas, vestidos,
sonidos y propiedades.
> Crear clones de manera masiva en el mismo instante puede acarrear
retrasos de ejecución y hacer que el proyecto vaya lento o incluso
que falle.
La clonación es un aspecto esencial para muchos juegos y proyectos bien
hechos, porque reduce la cantidad de objetos y programas.
Los clones se pueden usar en cualquier proyecto que necesite muchos objetos
repetitivos. Otro buen ejemplo es la creación de fuegos artificiales o nieve.

Los bloques propios de los clones

El primero es un bloque de sombrero, recuerda, son bloques de eventos que


se activan cuando ocurre el evento. En este caso los bloques que tenga
encajados por debajo se ejecutaran en el momento en que sea creado el clon.
El segundo bloque clonará en el proyecto el personaje escogido de la lista.
El tercer bloque es un bloque de cierre, recuerda, no se podrá encajar nada
por debajo. Su ejecución hace que se elimine el clon y pare la ejecución de
sus bloques.
No olvides usar este bloque en algún momento ya que, si no se borran, los
clones seguirán vivos ocupando memoria, pudiendo llegar a saturarla y hacer
que el proyecto deje de funcionar.

El modo turbo
He dudado mucho dónde poner este apartado. No tiene entidad cómo para ser
un capítulo y al final ha caído aquí. No está relacionado directamente con los
clones, pero como que los proyectos que usan esta técnica consumen
habitualmente muchos recursos, aquí queda.
El modo turbo hace que el proyecto de Scratch se ejecute a toda velocidad.
Por defecto en Scratch los bloques llevan implícito cierto retraso o cierta
lentitud. De otra manera no podrías apreciar movimientos y otras
características propias de Scratch.
Pues el modo turbo elimina esos retardos implícitos y ejecuta el proyecto lo
más rápido que puede.
Este modo no afecta a los bloques propios de espera, se respeta el tiempo de
espera programado.
El modo tubo tiene mucha utilidad en proyectos dónde se deben hacer
grandes cálculos matemáticos, proyectos de arte matemático, 3D o proyectos
con muchísimos clones dónde se nota el bajo rendimiento. Así que aplicando
el modo turbo se ejecutan perfectamente.
Para activar el modo turbo tienes dos opciones:
1) Mantener la tecla mayúscula (shift) pulsada antes de hacer clic en la
bandera verde.
2) Des del menú [Editar] de Scratch.

Ejemplo: año de nieves, año de bienes


Voy con un ejemplo que refleja el trabajo con clones. Voy a hacer la
simulación de una nevada.
Aprovecho el ejemplo para usar algunos bloques de apariencia, ya que no los
he usado casi nada. Con ellos voy a conseguir que los copos de nieve sean de
tamaños distintos y que se desvanezcan al tocar el suelo.
Lo primero que tengo que hacer en el nuevo proyecto es cambiar el fondo. Si
dejo el fondo blanco y hago copos de nieve blancos mal voy. Creo un fondo
azul oscuro. Recuerda que tienes que ir el escenario, el panel de más a la
derecha, y abajo tienes el botón redondo de color azul para escoger fondos,
crearlos, etc.
Ahora debo crear un personaje nuevo, el copo de nieve. Lo dibujo con la
herramienta de pintar. Si mantienes la tecla de las mayúsculas apretada
mientras dibujas una circunferencia, se crea perfecta.
Ahora ya puedo pasar a la programación del copo de nieve. Si acaso, copia
los programas y los analizo. Los tres programas están en el mismo objeto, el
copo de nieve:
El primer programa, el de la izquierda es el que maneja la creación de los
clones. Cuando se ejecuta el proyecto esconde el copo de nieve original, se
oculta él mismo.
Luego entra en una estructura repetitiva [por siempre] de manera que
mientras el proyecto esté en ejecución no pararan de crearse copos de nieve.
Dentro de la estructura repetitiva se crea un clon y hay una espera de 0,2
segundos para pasar a la siguiente repetición que creará el siguiente copo.
El segundo programa controla la caída vertical del copo de nieve. Empieza
la ejecución en el mismo momento en que se crea el clon.
Le ajusta un tamaño entre el 50% y el 100% de su tamaño original, se
muestra y va a una posición inicial aleatoria a lo ancho de la pantalla y fija en
la vertical, para que empiece el movimiento desde arriba. Si te fijas no he
puesto los límites propios de la pantalla x=240 e y=180; lo he hecho así para
tener un margen y no dar posibilidad de que los copos se posicionen
inicialmente tocando un borde. Piensa que la condición para que se destruyan
será, precisamente, que toque un borde, con la intención de que desaparezcan
al tocar el suelo. Si al crearse se posiciona y ya toca un borde desaparecerá de
inmediato.
Hecho esto empieza una repetición condicionada. Dentro de la estructura
repetitiva tan sólo cambio la posición Y en -1 para conseguir el efecto de que
se mueve hacia abajo. La condición para que deje de repetir ese movimiento
es que toque el borde. Por tanto, cuando llegue abajo de la pantalla dejará de
moverse.
Justo entonces cambio el efecto de desvanecer en una unidad 100 veces
seguidas, para conseguir un desvanecimiento lento.
Y finalmente se borra el clon con lo que ése copo de nieve en particular, esa
instancia concreta, se elimina.
Si lo dejara así los copos caerían verticalmente con poca gracia. Voy a añadir
un movimiento horizontal para intentar que sea un poco más realista.
El tercer programa provoca un vaivén suave del copo de nieve. La
ejecución también empieza en el mismo momento de ser creado el clon. Por
tanto, se moverá vertical y horizontalmente des del mismo inicio.
Va a repetir el movimiento hasta que llegue al borde, como antes. Así cuando
toque el suelo dejará de moverse horizontalmente. Por eso tengo esa
estructura repetitiva condicionada.
Y dentro de la estructura se hace el movimiento con dos repeticiones más,
una detrás de la otra, no anidadas. La primera repite 5 veces el cambio de la x
en una unidad positiva, hacia la derecha. Hecho esto se ejecuta la segunda
repetición que hace lo mismo, pero el cambio de posición es negativo con lo
que se moverá a la izquierda. Pongo el movimiento en estructuras repetitivas
para ralentizar el movimiento.
No está mal el efecto con esos pocos bloques de programación.
Seguro que podría perfeccionarlo un poco más haciendo que el movimiento
horizontal no fuera tan mecánico y fuese un poco más errático, pero lo dejo
en tus manos. Creo que el objetivo del capítulo está conseguido.
Esta imagen es una captura del funcionamiento a pantalla completa. No lo he
recordado hasta ahora, puedes, diría que debes, ejecutar los proyectos a
pantalla completa ya que algunos aspectos de funcionamiento cambian en
este modo. Por ejemplo, un objeto a pantalla completa no lo puedes mover
arrastrando con el ratón. En tiempo de ejecución sí lo puedes arrastrar por el
escenario en el editor.
El botón de pantalla completa lo tienes ahí arriba, a la derecha:
Capítulo 11: Crea tus propios bloques
Scratch incorpora una funcionalidad común en muchos lenguajes de
programación que es la creación de tus propios bloques. En esos otros
lenguajes esta técnica se conoce como procedimientos, funciones o métodos.
Creando tus propios bloques puedes conseguir que programas se puedan
encapsular en bloques reutilizables. Así puedes volver a usar un pequeño
programa varias veces sin tener que repetir los bloques cada vez.
Como ejemplo, supón que en un juego tu personaje debe hacer un salto
cuando coge algunos objetos o cuando se toca la tecla de flecha arriba.
Si el salto consta de tres bloques de código, en cada uno de los dos casos
deberás programar esos tres bloques. Como alternativa puedes construir un
bloque propio que haga esa función. Así cada vez que necesites saltar, llamas
a tu bloque propio des del lugar que lo necesites y realizará todas las
instrucciones que contenga.
Otro valor añadido a esta funcionalidad es que, si el salto debe cambiar, por
ejemplo, saltar más alto; tan sólo modificarás las instrucciones de tu bloque
personalizado, no deberás repasar todo el programa.

Crear un bloque personalizado


Ve a la sección [Mis bloques] y haz clic en [Crear un bloque].
En la pantalla que aparece escribe el nombre que va a identificar al bloque y,
de momento, no te fijes en las opciones de la parte inferior. Ahora las verás.
[Aceptar] y el bloque estará creado
Te toca definir la programación del bloque, es decir, añadir bloques estándar
para conseguir la funcionalidad que buscas; que el personaje haga un salto.

Cambia la coordenada Y diez píxeles, espera medio


segundo en el aire y vuelve a cambiar la Y en 10 píxeles negativos para
volver a la posición inicial.
Ahora sólo te queda programar el salto cuando se toca la tecla de flecha
arriba.

Así, si en otra casuística necesitas que tu personaje también haga un salto,


puedes aprovechar el bloque personalizado sin tener que volver a escribir los
tres bloques para el salto. Si tu personaje también debe saltar al tocar un
enemigo (es un ejemplo, no lo programes):
Bloques personalizados con parámetros
Otra conjetura, en el juego se puede producir dos tipos de salto, el corto y el
largo. Seguro que has pensado, hago otro bloque personalizado y lo habré
conseguido. Bien, está muy bien, pero y si la longitud del salto depende de
algún factor como, por ejemplo, la altura del obstáculo a superar, se complica
la cosa porque ya resulta arduo hacer muchos bloques personalizados.
Para estos casos existen los parámetros también llamados argumentos.
Estos parámetros son valores que puedes “pasar” al bloque para que
modifique su comportamiento en relación con ese valor.
En tu ejemplo, estaría perfecto pasarle el parámetro altura para que el salto se
realice desplazando el número de pixeles que indique esa altura.
Así que debes editar la definición de tu bloque (con clic derecho, por
ejemplo):
Haciendo clic sobre la opción de [añadir una entrada] te lo añade en la
definición y ahí le pones un nombre.
Ya redefinida la función puedes usar ese parámetro en los bloques interiores
arrastrándolo des de la definición allá donde haga falta. Se usa como si fuera
una variable.
La opción que te señalo con la flecha roja en la imagen anterior te sirve si el
parámetro es un número o un texto, en caso de necesitar un parámetro
booleano, recuerda: valores [verdadero] o [falso], entonces coge la opción de
[añadir una entrada lógica].
El programa completo quedará así suponiendo que con la flecha hace un salto
corto de 10 píxeles y si toca un enemigo hace un salto largo de 30 píxeles:

Nota: date cuenta de que en la definición del salto en el segundo bloque de


[sumar a y] he necesitado multiplicar por -1 el valor del salto para pasarlo a
negativo.
Más opciones
Me queda comentar un par de cosas de los parámetros.
Añadir etiquetas
Las etiquetas te ayudan a que la definición de un bloque personalizado quede
más clara para el programador, no tiene efecto en la funcionalidad:

El literal “de altura” es una etiqueta añadida a la definición del bloque:

Ejecutar al instante
Una opción más de la declaración de parámetros al definir un bloque es la
casilla de [Ejecutar al instante]. Es una opción bastante técnica que te voy a
intentar explicar.
Normalmente, después de cada iteración (de cada repetición) de una
estructura repetitiva, Scratch deja de ejecutar el programa actual y pasa al
siguiente (esto se llama yielding). Cuando ha terminado de ejecutar el resto
de los programas, actualiza la pantalla (es decir, vuelve a dibujar los objetos
en sus nuevas posiciones con sus nuevos atributos). Luego repite este proceso
hasta que termina de ejecutar la estructura de control. Así pues, se produce un
ligero retraso, necesario por otra parte, ya que, de no existir podría producirse
el efecto de que el personaje vuela o de que desaparece de la pantalla un
instante al moverse.
[Ejecutar al instante] hace que un bloque personalizado se ejecute todo de una
vez y no actualice la pantalla hasta que haya terminado de ejecutarse. Esto es
útil si deseas evitar el parpadeo que a menudo se produce cuando, por
ejemplo, se recorre una lista y se dibuja cada elemento.
Capítulo 12: Scroll
El concepto Scroll viene de la palabra inglesa que significa desplazar o
deslizar. Es muy usado en juegos o cuando hay que contar historias.
El scroll consiste en simular el efecto del movimiento del personaje por el
nivel de juego o por el mundo de la historia que estás contando.
En los proyectos de Scratch donde se mueve algún objeto, normalmente, el
objeto o personaje se mueve alrededor y el fondo está quieto. Pero si haces un
proyecto con scroll el objeto va a estar quieto y lo que se va a mover es el
fondo.
¿Y por qué hacer un juego o una historia con scroll? Principalmente por qué
puedes tener niveles o mundos muy grandes sin la limitación de 480x360 que
te ofrece el escenario. Tan grandes como quieras.
Imagina que estás filmando el proyecto: consigues el mismo efecto si mueves
la cámara 20 pasos a la derecha con el fondo quieto; que si dejas la cámara
quieta y mueves 20 pasos el fondo hacia la izquierda.
Para ello, en un nuevo proyecto Scratch necesitarás dos variables: [CamX] y
[CamY] o bien [ScrollX] y [ScrollY]. En muchos tutoriales usan los nombres
ScrollX y ScrollY, por eso te lo menciono. Yo usaré CamX y CamY.
Para el fondo del proyecto no voy a usar el escenario porque no se puede
mover. Necesito un fondo que sea un objeto del proyecto[12].
Una vez cargado el objeto de fondo le voy a programar lo que viene a
continuación sabiendo que mover la cámara a la derecha es lo mismo que
mover el fondo a la izquierda.
Si no acabas de entender el programa, cuando lo pongas en práctica tendrá
sentido.
Ahora al personaje lo sitúo en el centro. Él, en sí, no se va a mover a lo largo
de la pantalla, sino que se va a simular cambiando los valores de las variables
[CamX] y [CamY]. Es decir, el personaje está realmente quieto y el objeto de
fondo es el que se va a mover.
Por ejemplo, para el efecto de moverse 5 pasos arriba sumaré 5 al valor de la
variable [CamY]. Así, para el efecto de moverse 5 pasos a la izquierda restaré
5 al valor de la variable [CamX].
Ahora vas a programar el personaje que se va a mover por el nivel. Puede ser
tu amigo el gato.
Seguramente al importar la imagen de fondo y ya existir el gato en el
proyecto, éste esté debajo. Lo puedes traer adelante con los bloques de
código de la sección apariencia.

Son bloques que te permiten gestionar la superposición de los objetos. El


mismo concepto que cuando dibujas vectorialmente. Tienes el bloque que te
permite traer al frente o llevar al fondo un objeto; y el bloque que lo hace
capa a capa.
El funcionamiento del programa del gato se reduce a controlar si presiono las
teclas de las flechas para simular el movimiento.
Inicializo las variables [CamX] y [CamY] para que cada vez que ejecutes el
objeto de fondo se centre.
Luego me aseguro de que el personaje está por encima de cualquier otro
objeto trayéndolo al frente.
Entonces entro en una estructura [por siempre] ya que el control de
movimiento va a ser continuo mientras esté en marcha el proyecto.
Entro seguidamente en cuatro estructuras condicionales [si-sino]. No están
anidadas, sino que una va detrás de la otra.
Cada una de ellas comprueba si se ha tocado una de las teclas de las flechas y
si es así cambia el valor de la variable [CamX] o [CamY] en función de la
tecla que sea.
Para darle más realismo al movimiento le cambio el disfraz y hago una
pequeña espera.
A mí me ha funcionado y es un primer paso para lograr un buen scroll. Lo
siguiente sería que controles límites no haciéndolo ir más allá de donde te
interese. O bien trabajar con la velocidad para que el movimiento sea mucha
más real. La velocidad entendida como variación del número de píxeles del
movimiento. Ahora está fijo en 10, pero puedes jugar con ello.
Imágenes SVG
Como he comentado hace nada, si usas objetos como fondos y al disfraz le
cargas una imagen SVG, ésta se cargará con su tamaño real con lo que al
sobrepasar los límites del escenario puedes crear los efectos de scroll.
Cualquier otro tipo de imagen que no sea vectorial va a ser ajustada a los
límites del escenario y para hacer niveles grandes tendrás que usar técnicas
como tiling para formar un fondo compuesto por baldosas. Puedes buscar
proyectos de tiling para aprender, los hay muy buenos.
Las imágenes SVG (Scalable Vector Graphic) son ideales, pesan poco y son
escalables con lo que no se van a pixelar.
Para crear tus propias imágenes SVG puedes usar programas como Adobe
Illustrator, de pago, o InkScape que es de código abierto y gratuito.
NPCs: otros personajes
Es muy interesante, sino necesario, que en tus historias y juegos tomen parte
otros personajes que no son el propio protagonista. Se les denomina Non-
player characters (NPC).
Van a ser personajes no controlados por el usuario. Intentaré enseñarte a que
aparezcan e interactúen con el protagonista.
Pon un personaje en el proyecto y créales unas variables [my x] y [my y] con
la opción [Sólo para este objeto].
Le asignas una posición inicial que puede ser fuera de la pantalla. Tan sólo
ten cuidado de no sacarlo fuera de los límites de la imagen.
Debajo vas a hacer que siempre se sitúe respecto a la cámara. Algo como
esto:

Con estos bloques deberías poder ir a encontrar a tu personaje caminando


hacia la derecha y arriba. Por ahí estará.
He añadido un par de líneas para que salude al gato mientras se estén
tocando.
Con estos pocos bloques y sabiendo hacer grandes escenarios ya te veo
construyendo muchas historias llenas de personajes interactuando. Puedes
pensar en efectos de aparición de los personajes como el de desvanecer, por
ejemplo. En estos mundos de Scratch he visto grandes proyectos de
magníficos scratchers que explican más cosas respecto a escenarios con
scroll. Te animo a buscar otros proyectos como juegos de tipo infinite runner
en los que es muy típico usar efectos scroll.
Capítulo 13: Room Escape
Voy a dedicar un capítulo a los Room Escape. Los room escape existen en la
vida real. Hay empresas que ofrecen estos juegos que consisten en que un
grupo de amigos os encerráis en una habitación llena de pistas y enigmas que
debéis resolver para que os lleven unas a otras y encontréis una llave que os
permita escapar de la habitación.
Con Scratch puedes crear tus propios room escapes para que, por ejemplo,
tus alumnos y alumnas resuelvan cuestiones de alguna materia curricular para
poder escapar del nivel.
Te propongo unas premisas que puedes tener en cuenta en el momento de
planear tu room escape.
> Haz una selección de objetos.
> No todos los objetos tienen por qué ser útiles, algunos puedes
ponerlos para despistar.
> Puedes hacer que diga algo al hacer clic y que ese mensaje dé una
pista que conduzca a hacer algún comportamiento, ya sea acercarlo a
otro, moverlo a un sitio concreto, que cambie el disfraz, que
descubra otro objeto oculto, que te haga una pregunta…
> Debes pensar en los logros a conseguir.
> Puedes poner una cuenta atrás.

Recursos que puedes usar


He construido un room escape y te cuento mi estrategia.
He pensado que para controlar que objetos se pueden clicar, mostrar, ocultar,
mover, etc.; jugaré con una variable [fase] que me dirá en qué fase estoy de la
historia.
En cada personaje comprobaré la fase y actuaré acorde a su valor.
También iré enviando y recibiendo mensajes para tener un poco de todo.
Además, uso un evento que controla el cambio de fondo, así uso bloques
diferentes.
Ahora te muestro partes de programa que recomiendo que no programes tú,
todavía. Léelos para familiarizarte con ellos ya que son comunes en diversos
objetos del proyecto.
Al comenzar
Al iniciar el proyecto casi siempre muevo los objetos, adapto el tamaño y los
escondo, o muestro, para que aparezcan en la fase que toca:

Mostrar los objetos


Un caso sencillo, empieza la fase 6 y un objeto tiene que aparecer en escena.
Está esperando todo el rato a que sea la fase 6 para mostrase y dejar de
esperar.

A veces los muestro con un mensaje porque no tienen que aparecer al inicio
de la fase:
Hacer clic en los objetos
Prácticamente en todos los objetos controlo el evento del clic, ahora bien,
debo controlar la fase para actuar o no:

Preguntando cosas
No todo es hacer clic en los objetos. A veces conviene hacer una pregunta y
seguir si la respuesta es correcta.
En el caso que comento a continuación:
> Si estoy en la fase 3.
> Ajusto tamaño y coloco.
> Pregunto un dato y si no es correcto lo vuelvo a preguntar hasta que
sea adivinado.
> Una vez adivinado hago un efecto de cambio de tamaño con un bucle
de 10 repeticiones para suavizar el movimiento (empequeñezco el
objeto).
> Lanzo un mensaje y cambio el disfraz del objeto para que sea una
llave.
> Actualizo el valor de la variable fase para seguir con la historia.
Interactuando entre objetos
Otra forma de enriquecer tu room escape es que los objetos interactúen, por
ejemplo, colocando unos sobre otros. En el siguiente ejemplo, en la fase 4,
hay una espera hasta que el objeto en el que se encuentra el programa toca
otro objeto que se llama [acceso numérico]. Cuando pase, el programa
seguirá y enviará un mensaje para que se oculte una llave.
Añadiendo efectos
Siempre queda más bonita la historia si inventas efectos para los objetos.
Como efectos de movimiento, desvanecer, cambios de tamaño, etc. Te pongo
aquí algunos:
Esta parte de código hace crecer el objeto escalonadamente, no de golpe:

Esta otra aplica un desvanecimiento muy suave al objeto, una transparencia:

En este trocito hago girar un objeto 2 vueltas sobre sí mismo:

Y aquí hago caminar al personaje hasta el borde de la pantalla. Cuando llegue


iré a otra habitación cambiando el disfraz del fondo:
Mi propuesta
Te cuento mi historia y al acabar te pongo un enlace para que puedas jugar
con ella.
Todo empieza con un lindo gatito que te cuenta que está encerrado en casa.
Aparece en una habitación con una serie de objetos repartidos por ella. Te
saluda y te pide ayuda.
Los objetos no interactúan, todos menos uno, una lata de refresco que hay en
la mesa del ordenador.
Al hacerle clic a la lata se te pone delante y te cuenta que quiere reciclarse, al
momento aparecen tres contenedores de diferentes colores. El jugador debe
saber en qué contenedor debe depositar la lata. Si se arrastra al contenedor
correcto aparecen unas palabras de agradecimiento y un mensaje que da una
pista.
La pista habla de viajar. Con ello tienes que buscar algún otro objeto en la
habitación que tenga relación. Hay un mapa en la pared que ahora sí
reacciona si haces clic en él. Hecho el clic se acerca y te lanza una pregunta,
y una vez leída debes seguir tocando una tecla. La respuesta es un año.
Ahora vuelves a estar en la habitación, con lo que tienes que seguir buscando.
Hay un nuevo objeto que ya interactúa en esta fase, es ese teclado de acceso
que está en la pared. Al hacerle clic se acerca y te pide por un número
secreto. Quizá la pista del mapa sea la respuesta correcta. Si aciertas verás
que el teclado se convierte mágicamente en una llave. Tienes que descubrir
para qué sirve.
Lleva la llave encima del cofre que hay en el mueble. El cofre se abre y te
presenta una adivinanza. Al cabo de un momento salen unos botones de
colores. Resuelve y verás que el gato te felicita y sale de la habitación.
Vaya ahora te encuentras en otra distinta. Todavía no puedes salir de la casa.
El personaje te dice una bonita frase sobre la lectura.
Te quiere hacer saber que algo pasa con el libro que hay encima del mueble.
Al tocarlo se acerca y te plantea un jeroglífico.
Si has ido al soldado verás que se mueve para activar la aparición de una
llave de detrás del personaje. ¡Es la llave de casa!
Tu gatito ya puede salir de casa y te lo agradece mucho.
https://scratch.mit.edu/projects/237338724
Capítulo 14: Conectando con el mundo
exterior
Sensor de vídeo
Si trabajas con un dispositivo que dispone de cámara la puedes usar como
sensor y construir proyectos conectados con el mundo real.
Debes añadir la extensión de sensor de vídeo desde el botón de abajo a la
izquierda. Esto te añadirá cuatro nuevos bloques de color verde claro.
El tercer bloque de la imagen te permite encender y apagar la cámara del
dispositivo [encender apagar | invertir vídeo].

Otro de los bloques es de tipo


sombrero con lo que te permite iniciar un programa con él: [cuando el
movimiento de vídeo > 10]. Su funcionalidad es esperar a que el sensor que
mide el movimiento que capta la cámara sobrepase un valor. Cuando ocurra
eso ejecutará todos los bloques que tenga acoplados debajo.
El cuarto dice [fijar transparencia de vídeo a (50)]. Al ejecutarse verás en
pantalla la imagen que capte la cámara con la transparencia indicada, así ves
el escenario y a ti detrás en modo de transparencia. El valor 50 indica que se
fija la transparencia al 50% de opacidad.
El segundo es un bloque de información que te devuelve un valor indicando
siempre dos parámetros:
1) Debes indicar si quieres el valor del movimiento o de la dirección.
2) Si es el movimiento sobre el escenario o sobre el objeto donde está el
programa.
Adelante con un ejemplo típico, reventar burbujas con tus manos.

Voy
a hacer aparecer burbujas por la parte de abajo de la pantalla que irán
subiendo hacia arriba con un movimiento que intentaré que sea bastante real.
El objeto de la burbuja lo puede dibujar tú. No tiene mucho misterio.
Cuidado, en la imagen ves tres burbujas porque es una captura del juego. Tu
objeto debe ser una sola burbuja.
El bucle o rutina principal del proyecto es la que ves en la parte derecha de la
captura de pantalla.
Explicado rápido viene a ser que, al tocar bandera, escondo la burbuja y
enciendo el vídeo. Con esta acción me pedirá permiso para el uso de este,
debes aceptar, es una cuestión de seguridad. Entro en la repetición [para
siempre], así el proyecto no acaba hasta que lo pare yo. Dentro voy creando
clones de burbujas cada medio segundo.
Enseguida codifico otro programa, en la burbuja, en el que defino el
comportamiento de cada clon, es decir, qué va a hacer cada una de las
burbujas que se va creando cada medio segundo.
Usaré muchos cálculos de números aleatorios para intentar que el
movimiento sea poco previsible y así dar más realismo a las burbujas.

Uso el bloque de sombrero que se ejecuta cada vez que se crea un clon.
Dentro:
- Cambio el tamaño de la burbuja aleatoriamente entre un 50 y un 70
por ciento de su tamaño original. Aquí tú debes adecuar los valores
ya que van en función de lo grande que hayas dibujado la burbuja.
- La posiciono al azar en la parte baja de la pantalla.
- Le asigno una dirección entre -10 y 10 grados para que no salga
siempre en línea recta hacia arriba. Recuerda que el cero está en la
vertical superior.
- Muestro en este momento la burbuja.
- Entro en un bucle infinito de movimiento donde también compruebo
cuándo debe eliminarse el clon.
- Muevo entre 3 y 5 pasos para que no sea uniforme, pero tampoco
errático.
- Giro entre -5 y 5 grados para darle un paso ondeado.
- Voy a comprobar los dos casos en los que debo eliminar la burbuja.
El primero va a ser si muevo las manos (o la cabeza) delante de la
cámara y por encima de la burbuja con una magnitud superior a 50.
Mi movimiento lo va a captar la cámara de vídeo y sabrá si se
produce en la burbuja porqué así lo indico.
Si así ocurre hago sonar un “pop” y elimino el clon.
- Ahora compruebo si la burbuja llega al final de la pantalla tocando el
borde, en cuyo caso, también la elimino.
Cabe recordar que cuando trabajes con clones debes considerar en qué
momento se debe eliminar ya que, si no lo haces y los clones siguen “vivos”,
pueden causar una caída de rendimiento debido a que quedan ejecutándose en
la memoria.

El micrófono
Usar el micrófono de tu dispositivo es otra manera de interactuar con Scratch.
Scratch capta el sonido del micrófono y sabe detectar el volumen de lo que
está escuchando.
Si conectas unos auriculares de botón, muchos de ellos tienen un micrófono
incorporado. Se usan mucho para escuchar y hablar con el móvil.
Comprobando el volumen puedes jugar a muchas cosas.
Voy a soplar un globo hasta reventarlo.
Preparo un fondo de escenario y añado el personaje del globo, cambio el
disfraz al de color lila desde la pestaña. El gatito no me va a hacer falta.

Cuando soplas muy cerca del micrófono este soplido provoca un sonido y el
micrófono capta el volumen. Va a ser la chispa del proyecto, soplarás y
soplarás cerca del micro para inflar el globo.
Voy a programar el proyecto con estas
premisas: sitúo el globo en el centro de la pantalla… o quizá un poco más
abajo. Entonces lo hago pequeñito para empezar.
Entro en la rutina principal, en la repetición sin fin, de la cuál saldré cuándo
el globo explote.
Compruebo si el volumen supera el valor 40. Si no lo hace deshincho poquito
a poco el globo cambiando su tamaño en -1.
Si el volumen supera el valor 40 le cambio el tamaño en 10 para inflarlo y
enseguida compruebo si ha llegado al doble de su tamaño normal, siendo así
toco el sonido y lo escondo, dando el efecto que se ha reventado.

Texto a voz
Otra novedad de Scratch que trae la versión 3 es la extensión Texto a voz. Va
a hacer que tus personajes puedan hablar, pero hablar con voz, no en un
bocadillo de comic.
Además, trae un bloque para definir el idioma con el que se va a expresar con
lo que la entonación va a ser buena.
Los bloques de esta extensión son 3:

De arriba abajo sirven para:


> Asigna la voz que va a leer. Hay una voz muy divertida, la del
[gatito] que maúlla con cada palabra.
> Fija el idioma de la lectura para que emplee la entonación adecuada.
> El bloque que va a leer el texto que le pases por parámetro.

Traducir
Es otra extensión más que tienes de saque. Son los bloques de traducción que
usan Google Traductor para su funcionamiento.
La idea es fácil, le pasas un texto y un idioma a traducir. Al ejecutarse el
bloque el personaje dirá el texto traducido en un bocadillo. Siempre y cuando
lo combines con un bloque [decir] o [pensar].
Debes tener en cuenta que el idioma de origen va a ser el que tengas
establecido en el editor.
Incluso así, con las pruebas que he hecho, me he dado cuenta de que es
suficientemente inteligente como para detectar el idioma del texto que le paso
por parámetro, aunque sea diferente al del editor.
Imagina combinar la extensión Traducir con la extensión Texto a voz.
Los bloques de la extensión son:
El primero es el que traduce. Es un bloque informativo con lo que lo debes
usar combinado con otro de [decir] o [pensar] si quieres que aparezca en el
escenario. Para probarlo haz clic encima del bloque y te dice el resultado ahí
mismo.
El segundo bloque te informa del idioma actual que coincide con el que
tienes establecido en el editor.
Ejemplos:

En el siguiente ejemplo el gatito dirá, escrito y hablado, la traducción al


francés de la frase ¿Hay una oficina de correos cerca?
Capítulo 15: Un poco de electrónica
Estás rodeado de aparatos, juguetes, electrodomésticos, dispositivos y un
sinfín de objetos con un pequeño ordenador programado dentro que controla
su funcionamiento.
Estos pequeños ordenadores son placas electrónicas con un microcontrolador
y diversos componentes electrónicos que hacen funcionar esos
electrodomésticos y juguetes.
En la electrónica y robótica doméstica tienes a tu alcance plataformas de
hardware libre y otras de marca registrada que tienen su entorno de
programación con las que aprender el fascinante mundo de la electrónica y la
robótica y, así, aplicar su uso a proyectos multidisciplinares.
Entre placas electrónicas más conocidas tienes a:
> Arduino
> Raspberry pi
> Micro:bit
> Makey
Aparte existe un sinfín de kits de robótica de montaje que son modelos que
llevan sensores, actuadores y periféricos.
Los sensores y periféricos de entrada son dispositivos físicos capaces de
detectar estas magnitudes físicas y actuar en función de ellas. Magnitudes
como distancia, temperatura, humedad, intensidad luminosa, aceleración o
inclinación entre otras. Éstas se transforman en variables eléctricas que
pueden ser leídas, interpretadas y usarlas como valores. Dos ejemplos:
Sensor de temperatura Sensor ultrasónico de distancia

Cómo ejemplo de un periférico de entrada puedes imaginar un botón.


Por otro lado, también están los actuadores y periféricos de salida que son
dispositivos físicos capaces de transformar energía, en tu caso, eléctrica, en la
activación de un efecto sobre un elemento externo.
Entre ellos tienes: LEDs, motores, pantallas LCD, teclados, displays,
zumbadores, bluetooth, etc.
La electrónica que puedes trabajar a nivel doméstico se basa en placas
electrónicas que tienen un microcontrolador y diversas entradas y salidas
donde conectar sensores, actuadores y periféricos.

Imagen de una placa Arduino modelo UNO


Al microcontrolador se le carga un programa que se ejecuta cuando la placa
recibe alimentación eléctrica.
El éxito de estas placas programables y kits de robótica se ha debido al bajo
coste de los componentes y la sencillez de programación que ha hecho
acercar la electrónica y la robótica a nivel doméstico y docente.
Es importante mencionar los kits de robótica LEGO Education. Los hay para
todas las edades, desde infantil pasando por primaria y secundaria. Son sets
con bloques LEGO, piezas especiales y algunos sensores y actuadores como
medidores de distancia, inclinación y motores. Ayudan a los más pequeños a
aprender ciencias, programación, ingeniería y tecnología. Por tanto, cabe
perfectamente un apartado en este libro. Destacan los modelos LEGO WEDO
2.0 orientados a primaria y LEGO MAINSTORMS EV3 para los que ya son
un poco mayores.
¿Y todo esto por qué? Pues porqué Scratch pone a tu disposición extensiones
de bloques que conectan con este maravilloso mundo de la electrónica y los
kits de robótica. Te amplia enormemente las posibilidades al conectarte con
el mundo real y dar vida a tus ideas.
Así, si a los bloques de programación que ya conoces de Scratch le sumas los
bloques que conectan el mundo real… No sé, a mí se me saltan las lágrimas.

Makey
El kit Makey es una placa electrónica que se comercializa por unos 50
dólares hoy en día y que te permite enviar órdenes al ordenador al que esté
conectado.
Estas órdenes se envían en forma de pulsaciones de teclas, quiero decir, que
la placa “simula” que se han tocado ciertas teclas cuando se cierra un circuito
eléctrico. No te asustes, no es peligroso.

Las teclas simuladas son las cuatro flechas de dirección, el espacio y el clic
del ratón.
Lo que debes hacer para enviar las pulsaciones es cerrar un circuito mediante
el contacto con pinzas de cocodrilo, así se simula la pulsación de una tecla.
Con ello, con cualquier objeto conductor se pueden hacer mil inventos que
pueden servir como una tecla del ordenador.
¿Objeto conductor? Fruta, papel de aluminio, plastilina, personas …
Scratch 3 ha incorporado una extensión para esta placa. Puede parecer que no
tenga utilidad porqué con los bloques convencionales de esperar que se toque
una tecla ya puedes usar Makey.
Lo que sí aporta la extensión es un bloque que integra secuencias de
instrucciones para que ocurran en orden.

Esto facilita el trabajo porqué para tener la misma funcionalidad deberías


encadenar bloques de control [esperar hasta].
Piano
Haz un piano con plátanos. También lo puedes hacer con recortes de
aluminio.

Imagínate por un momento que los recortes de aluminio los haces gigantes y
los montas sobre los escalones de una escalera. ¡Tendrás una fantástica
escalera musical!
La programación no es nada complicada ya que el proyecto debe responder a
las pulsaciones de las teclas y hacer sonar una nota.
Luego lo puedes adornar cómo quieras añadiendo un piano al escenario y
poniendo unas teclas y un efecto de movimiento para simular que las están
tocando.

Las partes de un todo


Makey se puede usar en infinitos proyectos educativos. Uno de ellos puede
ser el enseñar las partes de un todo. Por ejemplo, las partes del cuerpo
humano, las de una casa, las de un mapa, etc.…
Todo sea pasárselo bien construyendo la parte física del proyecto poniendo
los contactos eléctricos donde te interese.
Controlar cualquier cosa
Construye un mando de juego con aquello que se te ocurra.
Algo muy divertido es hacer un mando como el de la PlayStation con
plastilina. Asegúrate que es conductora.
Lo podrás utilizar en cualquier juego que programes donde debas mover
algún personaje.
Para muestra un botón
El juego de operación. En el juego de operación debes tener el pulso de un
cirujano para extraer los huesos de un muñeco sin que se queje.
En clase de manualidades construye un modelo de persona con huecos donde
poner huesos. Rellena los huecos con papel de aluminio para que sean
conductores de electricidad.
Conecta esos huecos de papel de aluminio a la placa para que funcione cómo
si se presionara una tecla. Conecta, también, unas pinzas metálicas con otro
cable. Al jugar, el jugador debe sacar los huesos de los huecos con las pinzas
sin tocar el aluminio, ya que si toca se cerrará el circuito. Programa que, al
tocar esa tecla, circuito cerrado, emita un sonido, por ejemplo.
Busca en Google imágenes “makey juego operación” y encontrarás modelos
inspiradores.
¿Y el Simón? Un juego mítico de memoria. Recuerda, tienes que memorizar
y reproducir una secuencia de colores en el mismo orden que son mostradas.
¡Y lo que dé tu imaginación! Makey es fantástico, te conecta la programación
a cosas hechas con tus propias manos.
Es de gran ayuda en el trabajo colaborativo así que no lo dudes y ponlo en
práctica.

Micro:bit
A mi entender, micro:bit es un paso anterior a otras placas electrónicas
programables algo más complejas por el simple hecho de que el
microcontrolador, los sensores y los actuadores ya están integrados en la
misma placa. De esta manera no es necesario realizar un montaje, ni cablear,
ni soldar el circuito eléctrico y sus componentes. En otras placas se hace
necesario montar un prototipo y hacer un circuito de conexiones, aunque muy
sencillas de veras. Y claro, como uno mismo se hace los circuitos pues el
límite está donde llegue la imaginación.
Por contra hará falta entender algún concepto de electrónica de circuitos.

Este es micro:bit visto por delante y por detrás.

Es una placa de 5 por 4 centímetros.


Estos días he leído la noticia de que ha salido al mercado la versión 2 de
Micro:bit con todavía más posibilidades.
Por la parte de delante puedes ver dos botones programables a izquierda y
derecha, en el centro una trama de 25 LEDs programables individualmente
con los que visualizar texto e imágenes, y en la parte inferior 5 puertos de
conexión externa. Los tres primeros son entradas y salidas tanto analógicas
como digitales, los dos siguientes son tomas de energía y de tierra para
circuitos externos.
En la parte de atrás están estos componentes: un microprocesador ARM de
32 bits y 16K de RAM, antenas de bluetooth y de radio, un conector micro
USB, un conector de batería o pilas, sensores de luz y temperatura y sensores
de movimiento con acelerómetro y brújula.
Lo primero que hay que hacer es conectar
Conecta un cable USB, de los de móvil, entre el ordenador y la placa
micro:bit.
¡Ya empieza a funcionar! Por la trama de LEDs va apareciendo información.
A parte, en tu ordenador se acaba de mapear una unidad de disco nueva con
la letra E:, F: o la que haya escogido.
¡A programar!
Las placas electrónicas funcionan cargando un programa en el
microprocesador para que, a partir de entonces, siempre se ejecute cuando la
placa recibe energía.
Voy a explicarme mejor:
Imagínate un juguete como, por ejemplo, un coche teledirigido. El mando
que controla el coche seguro que tiene una placa electrónica programada
dentro. Y cuando pones en marcha el coche siempre funciona igual, el
volante lo hace girar y el acelerador lo hace avanzar.
Si apagas el coche y al día siguiente vuelves a jugar, el coche funciona igual
que el día anterior. Quiero decir con esto que la placa electrónica tiene
cargado un programa para hacer funcionar el coche y cuando recibe energía
se ejecuta de inmediato, y siempre es el mismo.
Con las placas electrónicas domésticas pasa lo mismo, tienes que hacer un
programa, cargarlo en la placa y a partir de entonces será el programa que
siempre se ejecutará cuando la placa reciba energía.
Esto es verdad de la buena.
Ahora bien, herramientas como Scratch te permiten hacer funcionar las
placas online es decir puedes ir modificando el programa y la placa ejecutará
los cambios sin tener que guardar el proyecto y traspasarlo al
microprocesador. Pero yo consideraría esto una excepción. El
funcionamiento estándar es lo que te he explicado en primer lugar.
Echa un vistazo a los editores de programación que funcionan con micro:bit.
Editor de bloques de JavaScript
Bloques de programación al estilo Scratch, aunque no hay escenario donde
desarrollar una historia o un juego.
Si vas a tienes el entorno de programación de bloques JavaScript.
Arriba a la derecha tienes una rueda dentada dónde cambiar el idioma.

A la izquierda tienes una muestra del micro:bit, en el centro las categorías de


bloques, y a la derecha el panel de programación.
Intenta hacer el programa que ves en la imagen, no te será difícil. Cuando lo
tengas listo en tu pantalla verás que abajo a la izquierda hay un gran botón de
nombre [descargar]. Si le haces clic se te abrirá una ventana de [guardar
como] asegúrate de que tienes seleccionada la unidad del micro:bit. Guarda
ahí el fichero, no importa el nombre.
Con esto has cargado el programa en el microprocesador. Mientras carga el
proceso verás un LED naranja parpadeando en la parte trasera, al finalizar el
programa se empieza a ejecutar de inmediato. Mostrará un mensaje en trama
de LEDs y luego, de forma continuada, te informa de la temperatura ambiente
que tengas.
Ahora desconectas el micro:bit, es importante que, antes que quitar el cable,
desconéctalo primero con el icono de “quitar hardware de forma segura” del
ordenador como si desconectaras un pendrive. Hecho esto, quita el cable. La
placa se apagará y el programa dejará de funcionar, obvio.
Conecta otra vez el cable USB o alimenta la placa con un portapilas externo.
Se vuelve a ejecutar el mismo programa de la temperatura. Espero que esta
práctica refuerce la teoría anterior.
Bien. Vuelvo a decir que con Scratch no hará falta todo este proceso, la
ejecución es online.
Más opciones para programar la placa micro:bit
> Editor de Phyton: Phyton es un lenguaje de programación clásico de
tipo texto. No es propio de micro:bit sino que es generalista. De
hecho, se creó a finales de los años ochenta.
Al ser un lenguaje de programación textual debes ir con mucho
cuidado con la sintaxis y la notación de los comandos cuando lo
utilices.

Este sencillo programa muestra continuamente el dibujo de un


corazón en la trama de LEDs.
> Apps para móviles que te permite enviar código a tu micro:bit por
Bluetooth.
> Makecode: Microsoft ha creado una aplicación para Windows 10. Es
exactamente el mismo entorno que el editor de bloques de
JavaScript, pero lo tienes instalado en tu ordenador.
> Y como no, Scratch.
Micro:bit y Scratch
Toca prepararlo todo para programar micro:bit con Scratch.
Lo primero es que necesitas es un software para que Scratch reconozca y
conecte tu placa a Scratch. Se llama Scratch Link y lo puedes descargar aquí:
https://scratch.mit.edu/microbit
Bien, descárgalo y ponlo en marcha. Se quedará ahí escondido en la zona de
notificaciones de Windows, al lado del reloj, abajo a la derecha.
Otra acción imprescindible es copiar un archivo a la placa micro:bit. Es
necesario para la sincronización con Scratch. Para ello:
1) Conectar la micro:bit al ordenador mediante el cable USB. Como te
dije, se creará una unidad de almacenamiento con una letra E:, F: o la
que el ordenador decida.
2) Ve a la página https://scratch.mit.edu/microbit y descarga el
fichero HEX.
3) Arrastra o copia este archivo HEX a la unidad de almacenamiento
que se ha creado en el ordenador.
En estos momentos ya puedes ir a Scratch y añadir la extensión de micro:bit.
Lo primero va a ser el proceso de conexión.

Scratch se pone a buscar tu placa micro:bit.


Muestra una lista con las placas que ha encontrado. Elige la tuya con el botón
[Conectar]
Si todo va bien tu placa se habrá conectado y ya puedes usarla con Scratch.

Una nueva categoría de bloques te aparece en la lista de categorías, al final, la


de los bloques de micro:bit.
Los bloques de micro:bit

El primero es un bloque sombrero, así que va a encabezar el programa. Es el


bloque que espera que uno de los botones se presione. Puedes elegir que se
ejecute cuando se presiona el A, el B o cualquiera de ellos.

Un bloque hexagonal para usarse en una condición. Evalúa si se ha


presionado alguno de los botones retornando un resultado verdadero si ha
sido así.

Otro bloque de inicio de programa que espera que ocurra un evento. Este
evento va relacionado con el movimiento de la placa. Lo detecta el
acelerómetro. Así que puedes mover el micro:bit, agitarlo o hacerlo saltar,
que este bloque de código lo puede detectar.

Este bloque muestra un dibujo en la trama de LEDs. Pulsa en cada uno para
que quede activo o apagado. Forma tu propia imagen. Los botones de abajo
son para apagar o encender todos los LEDs de una vez.

Este otro muestra un texto deslizante en la trama de LEDs tipo banner. Las
letras van pasando de derecha a izquierda.

Apaga todos los LEDs.


Otro bloque de evento que espera a que el micro:bit se incline. Puedes
controlar una inclinación concreta o hacerlo ejecutar si se inclina en cualquier
sentido.

En este caso también se trata la inclinación, pero con un bloque hexagonal.


Lo puedes usar en bloques que trabajen con condiciones.
Este es un bloque informativo que te devuelve el valor en grados de la
inclinación en el sentido que escojas.

Este bloque de evento espera la señal de los pines con los que puedes añadir
actuadores o sensores externos como robots, displays u otro tipo de sensores
que no lleva integrados la placa. Se ejecutarán los bloques que tengan
acoplados cuando el pin indicado reciba señal eléctrica. Si la señal recibida es
digital recibirá un verdadero/falso, si es analógica recibirá un valor numérico.
Recuerda que a través de estos mismos pines se pueden enviar datos a los
actuadores.
Tirar el dado
Algo muy sencillo. Vas a tener un dado electrónico. Te puede servir para
jugar al parchís, la oca o cualquier otro juego que lo necesite.
La idea es que, cada vez que se agite, la placa muestre en la trama de LEDs
un número aleatorio entre el 1 y 6.

Juego de recoger frutas


Vas a hacer un juego donde un bol va a recoger frutas.
Dejo en tus manos incorporar mejoras como: añadir más frutas que sumen,
otros elementos que resten puntos en vez de sumarlos, efectos de sonido,
música de fondo, etc.
El marcador
Define una variable [puntos]. Y que se vea en grande abajo a la derecha del
escenario.
El bol
Quita el gatito del proyecto y añade un personaje de la galería que se llama
bowl.
Colócalo en la zona inferior y central del escenario. Aprovecha un momento
para cambiar el fondo del escenario y que no sea tan aburrido. Yo he puesto
el Blue Sky.

Voy a programar el bol. Al empezar lo coloco en su sitio, inicializo los


puntos y en un bucle sin fin programo el movimiento.
Lo divertido de este proyecto es que vas a mover el bol inclinando el
micro:bit.
Así que ahora es buen momento para añadir la extensión de micro:bit y
conectarlo.
Ahora añade otro protagonista del juego, una fruta. Yo he escogido la
manzana de nombre Apple.
La idea de la manzana es que aparezca en una posición aleatoria de la parte
superior del escenario y vaya cayendo hasta tocar el borde o tocar el bol.
Haré que si toca el bol sume puntos y, si toca el borde, reste.
Pero no va a haber una única manzana en el juego. Yo voy a escoger la
técnica de clonar objetos.

Al empezar escondo el personaje y lo hago más pequeño. Espero un tiempo


prudencial y creo ya el primer clon.

Cuando el clon se crea se muestra y lo coloco en una posición aleatoria


horizontalmente y fija verticalmente, en la parte de arriba. No uso los límites
de la pantalla que serían 240 y 180 debido a que el control para que el clon se
elimine será tocar el borde. Si uso los límites justos el clon podría aparecer
tocando el borde de inicio y desaparecería de inmediato, como aprendiste en
el proyecto de los copos de nieve.
Ahora voy con la chicha, la lógica que debe tener la manzana mientras tenga
vida:
Mientras no pase otra cosa el
clon irá bajando hasta tocar con el borde. Cuando llegue al borde restará un
punto e, inmediatamente, creará otro clon y se autodestruirá. Espera, no has
acabado.
Lo que te falta es, justo después de bajar 10 pasos, comprobar si se está
tocando el bol. En el momento que lo toque, sumas puntos, creas otro clon y
destruyes este.
Hasta aquí. La gracia de este proyecto es mover el bol con la placa micro:bit.

LEGO WeDo 2.0


Lego Education es una línea de productos LEGO para crear más
oportunidades de aprendizaje en las clases y desarrollar las habilidades de
futuro del pensamiento computacional.
Existen las First Lego Leagues que son competiciones de robótica Lego que
ayudan a motivar el desarrollo de la ciencia y la tecnología. Los estudiantes
cooperan, colaboran y desarrollan las habilidades de trabajo en equipo
necesarias para tener éxito. Hay eventos locales, regionales e incluso a nivel
mundial. Busca en la red vídeos y más información.
Concretamente, WeDo 2.0 es un set de piezas lego de la línea de robots
educativos fabricados por LEGO. Está pensado para concebir, diseñar y
desarrollar robots educativos para que los estudiantes se inicien desde muy
jóvenes en el estudio de las ciencias, la tecnología, la programación y la
ingeniería.
WeDo 2.0 está pensado para alumnos de primaria. Es el hermano pequeño de
LEGO Mindstorms V3, otro set compatible con Scratch, y enfocado a los
alumnos de secundaria.
El set dispone de un hub de conexión, un motor, un sensor de distancia y un
sensor de inclinación a parte de las piezas LEGO para construir modelos
robóticos; como ruedas, correas, piezas dentadas, bielas, etc.

El hub usa una conectividad BlueTooth con el ordenador así te ahorras cables
de por medio. Esta función te permite usarlo con tabletas.
Su uso está muy orientado al aula. Hay mucho material y recursos para ello.
Te invito a buscar por la red y descargar lo que necesites. Yo me limitaré a
enseñarte qué es, cómo funciona y ponerte un par de ejemplos para que, a
partir de entonces, hagas volar tu imaginación.
Si es verdad que deberías aprender el montaje de modelos básicos y practicar.
Así no tendrás dificultad en construir modelos nuevos que giren una
manivela, que levanten una barrera o que rueden.
Al tener tan pocos sensores y actuadores WeDo está limitado. Con esto
quiero decir que si se te pasa por la cabeza hacer un robot perruno que te
traiga las zapatillas y el periódico, con WeDo no lo vas a poder hacer. Te
digo, hacer un robot que se mueva adelante y atrás, no hay problema, pero,
para hacer un robot que gire ya necesitas otro motor. Siempre lo puedes
comprar aparte, eso sí.
El precio de LEGO WeDo 2.0 no es precisamente barato. Son sets que
pueden compartirse entre dos alumnos. Y creo que hacen precio especial para
escuelas.
Conectando LEGO WeDo 2.0
Scratch Link
Vas a necesitar un software de enlace entre WeDo i Scratch. Es Scratch Link
y lo puedes encontrar en esta dirección https://scratch.mit.edu/wedo.
Es necesario que se esté ejecutando este programa. No verás ventana alguna,
tan solo un pequeño icono en el área de notificación de Windows, allá al lado
del reloj.
Si no está en marcha, Scratch no podrá conectar y te lo recordará.
Cuento con que ya te lo has descargado y lo has ejecutado.
La extensión
Scratch incorpora una extensión para poder usar
WeDo 2.0 en tus proyectos. A estas alturas creo que no es necesario que te
recuerde dónde está el botón de las extensiones. Le haces clic y luego clic en
el icono de LEGO WeDo 2.0.
Aparece una ventana que espera que hagas clic en el botón de empezar a
buscar. Con ello Scratch mira de localizar el hub de WeDo. Haz clic en ese
botón y buscará.

En ese momento debes apretar el botón de conexión del hub de lego y esperar
que se produzca el feliz encuentro.
Si te aparece esto estás de enhorabuena, lo tienes todo preparado para
empezar a programar.
Construir un modelo
De poco va a servir programar algo divertido si no tienes un modelo que lo
ejecute, tu pequeño robot.
Hoy en día, aquí, encontrarás instrucciones de montaje de modelos:
https://education.lego.com/en-us/support/wedo/building-instructions
Los bloques de la extensión WeDo 2.0
Con todo preparado voy a repasar los bloques específicos de la extensión
WeDo 2.0.
Los bloques que tienen que ver con el motor:
En la parte de debajo de la imagen te pinto los parámetros que tienen los
bloques en el desplegable [motor]. Tienes la opción de dejar [motor] si sólo
dispones de uno; especificar A o B si tienes dos, o indicar [todos los motores]
para que reaccionen todos a la vez.
A lado está el cuadro de opciones del último bloque que indica la dirección
de giro del motor: en un sentido, en otro o al contrario del que esté girando
actualmente.
Los bloques, en orden, sirven para:
1. Poner en marcha el motor un tiempo determinado.
2. Encender el motor.
3. Apagar el motor.
4. Fijar la potencia del motor a un valor. Valores entre 1 y 100. Cien es
la máxima potencia.
5. Establecer el sentido del giro. No es muy concreto, es del rollo “a un
lado” o “al otro lado”. No concreta derecha, izquierda, … o similar.

Este bloque establece el color de la luz del hub. Le dices el tono con un
número.

Bloque de evento que usa el sensor de distancia. Se activa su ejecución en


función de la condición que establezcas. Elige mayor o menor y la distancia.
No es una distancia en centímetros, así que usa el bloque informativo de la
distancia temporalmente para conocer el baremo.

Bloque de evento del sensor de inclinación. Puedes escoger un sentido de


inclinación: arriba, abajo, izquierda, derecha o bien que se ejecute cuando
detecte cualquier inclinación.
Bloque informativo de la distancia. Como te he comentado, te recomiendo
que lo uses antes para conocer la relación entre los valores y la distancia real.

Bloque condicional para conocer si el sensor de inclinación está inclinado


hacia algún sentido. Hoy en día, cuando estoy escribiendo estas líneas, a este
bloque le falta el parámetro, está vacío. Debería tener las mismas opciones
que el siguiente bloque. Quizá cuando leas esto la versión haya cambiado y
ya tenga el parámetro necesario.

Bloque informativo que devuelve el valor del ángulo de inclinación del


sensor en el sentido indicado.
Construir una barrera para coches
El tener un solo kit de WeDo 2.0 implica una limitación: el hub sólo tiene dos
puertos de conexión. Un puerto lo vas a ocupar con el motor para subir y
bajar la barrera con lo que te queda uno sólo para el sensor.
Tienes que decidir con qué sensor vas a hacer el proyecto. Yo tengo dos
ideas:
1. Usar el sensor de inclinación para controlar cuando parar el
movimiento. Debes parar cuando la barrera esté vertical o bien
horizontal.
2. Usar el sensor de distancia para hacer que se abra o se cierre cuando
se acerca el coche.
Con las dos funcionalidades no puedes porque te faltan puertos. Yo he estado
haciendo pruebas y el motivo que me ha hecho decidir es que el sensor de
inclinación detecta hasta 45 grados y no sube más, no llega a 90 grados. Con
eso he preferido trabajar con el otro sensor, así que el objetivo de esta
práctica va a ser el siguiente: construir un modelo LEGO que tenga una
barrera motorizada y un sensor de distancia colocado antes de la barrera. La
programación debe hacer:
> Inicialmente la luz del hub estará roja indicando que no se puede
pasar y la barrera en posición horizontal.
> Cuando se acerque un coche de juguete el sensor de distancia lo
detectará.
> Cambiará la luz del hub a verde.
> Abrirá la barrera hasta quedar en vertical dejando pasar así el
vehículo.
> Cuando el sensor de distancia deje de detectar el coche esperará un
tiempo prudencial (para que no se caiga la barrera encima) y cerrará
la barrera cambiando, otra vez, la luz del hub a color rojo.
Las piezas
Para no llenar páginas y páginas de imágenes del montaje voy a ponerte sólo
unas cuantas que espero sean suficientes para que puedas ensamblar el
modelo. Te presento el modelo en cuatro partes: las piezas que hacen falta
para cada parte y la parte ya montada.
Parte 1: el hub
Parte 2: el sensor de distancia
Parte 3: motor y engranajes
Parte 4: la barrera

El modelo totalmente ensamblado.


La programación
En este proyecto no va a ser necesario disponer de ningún personaje en el
escenario. Dejo a tu imaginación las ganas de completar el proyecto con
personajes, diálogos o lo que se te ocurra para hacer más grande y mejor esta
práctica.
Por tanto, debes programar en el escenario. Estará vacío, no hay problema.
Lo primero es conectar el hub de WeDo. Recuerda poner en marcha el
programa Scratch Link, que yo siempre me olvido.
Añade la extensión de WeDo 2.0.
Lo primero que hago es poner la luz de hub en rojo. Fíjate que he puesto un
comentario. Lo trabajaste unos capítulos atrás y no había vuelto a hablar de
ello. El comentario recuerda los valores que debes usar para el rojo y el
verde.
Seguidamente viene la lógica del programa metida toda en una estructura
repetitiva [por siempre] para que no pare de funcionar.
Inmediatamente he puesto una estructura condicional que engloba todo el
proceso con el fin de que si no se cumple una condición no va a pasar nada.
La condición es que algo se acerque.
Si no hay nada cerca del sensor de distancia, ésta tiene un valor de 100, por
tanto, si la distancia es inferior a ese valor es que hay algo cerca. Cuando
pase debes levantar la barrera, esperar y volverla a bajar.
Son las 3 partes de código numeradas son:
1. Pongo la luz en verde, fijo el sentido correcto de rotación del motor y
lo pongo en marcha 1,6 segundos. ¿Por qué ese valor? Pues porque lo
he estado probando, ni más ni menos. Tú tienes que hacer lo mismo y
ajustar tu número. Más aún si haces tu propio modelo y las piezas de
la barrera hacen que pese más o pese menos.
2. Ahora a esperar, no puedes bajar la barrera de inmediato. Yo he
apostado por: primero esperar a que la distancia vuelva a ser 100 con
lo que el coche ya ha avanzado y salido del radio de acción del
sensor y, segundo, dejar un margen de 1 segundo para dejar que pase.
3. Finalmente hago la misma operación, más o menos, que el primer
punto, pero cambiando el sentido de rotación del motor. La
diferencia es que el color rojo del hub lo establezco al final en lugar
de al principio.
Capítulo 16: Ejemplos relacionados
con el currículo escolar básico
En este capítulo tengo la intención de proponerte unos proyectos cercanos a
las materias del currículo escolar, con la única intención de inspirarte y
abrirte un poco la puerta y que, así, veas todas las posibilidades que hay para
trabajar en las materias del curso.
Si aplicas esas ideas vas a tener niños y niñas motivados y motivadas y
divirtiéndose sin dejar de aprender.

Matemáticas y física
Las figuras geométricas planas
Te planteo una forma de aprender las figuras geométricas planas de lados
iguales y las primeras divisiones con Scratch.
Voy a hacer un sencillo proyecto en el que se pregunte por el número de
lados de una figura y un personaje la dibuje y te responda los grados de los
ángulos que la conforman. Es un buen proyecto para animar a los más
pequeños a que lo hagan sin tu ayuda. Al menos al principio.
Quito el gato y pongo un personaje con forma de lápiz. En él hago el
programa.
Aquí lo más importante es que los niños y niñas aprendan que la
circunferencia es de 360º y que para saber el número de lados necesarios
deben hacer una división. A partir de ahí tienen que programar una repetición
que será de tantas veces como lados tenga la figura a dibujar, y hacer que el
personaje dibuje moviéndose unos pasos y girando.
Al acabar de dibujar la figura, informa del ángulo que ha usado para dibujar.
Lo he tuneado un poquito añadiendo cosillas como que les proporciono yo el
número de pasos a moverse. Eso se debe a que, al probarlo, he visto que si
hago unas figuras con un número elevado de lados se me va de la pantalla.
Descubre cómo lo he hecho.
Y también he hecho que, cuando el lápiz te habla, lo llevo a otro sitio de la
pantalla porqué si no me tapa la figura y no se ve bien. Así que cada vez que
empiezo una nueva figura vuelvo a colocar el lápiz en la parte inferior
izquierda.
Bueno, te animo a que repases el código y seguro que lo captas enseguida.
Atento a las estructuras repetitivas que una va dentro de la otra y debes fijarte
en qué partes de programa van dentro y fuera de cada una.
Líneas bailongas
Con una serie de bucles, tres variables y unas funciones, haces que se dibujen
unas líneas en pantalla con un efecto chulísimo. En el ejemplo está escrita
esta ecuación, pero juega con ella cambiando las funciones trigonométricas.
Obtendrás otros efectos bien bonitos.

Los valores de la división final de la ecuación sirven para encajar en los


límites de la pantalla.
Recuerda que los bloques de lápiz son una extensión que tienes que
incorporar al proyecto.
Si finalizado el proyecto lo pones en marcha y crees que va lento, activa el
modo turbo que reduce las esperas entre instrucciones. Lo encontrarás en el
menú Editar > Activar el modo turbo.
Necesitas un objeto que será un punto.

Tres variables de nombres [a], [i] y [n].


Un bloque personalizado [Dibujar].
Y el siguiente código.
Agradecimientos a PullJosh por compartir su proyecto.

Cómo es difícil de ver el detalle de la ecuación aquí tienes una imagen


ampliada de la primera parte:

Si al ejecutarse el proyecto, éste va muy lento, activa el modo turbo.


Vamos de compras
El personaje pide que cojas las monedas necesarias para ir a comprar algo de
lo que él te dice el precio. Tienes que coger el importe exacto. Cuando lo
tengas haz clic en el botón COMPROBAR para que te diga cómo ha ido todo.
En un principio no se va a ver lo que hayas ido acumulando, pero si el
usuario tiene dificultad para saberlo, haciendo clic en el monedero se
mostrará la variable que lleva la cuenta.

Te enseño cómo lo he hecho yo.


Las monedas
Las imágenes de las monedas me las he bajado de internet y las he añadido al
proyecto con la opción de [subir objeto] y el botón de añadir objetos.

En todas las monedas hago lo mismo salvo que cambio el valor que acumula.
Éste debe ser acorde al valor de la moneda.
La imagen de ejemplo es de la moneda de 20 céntimos. Todas tienen los
mismos programas, pero cambio el valor de último bloque: 0.2 para la
moneda de 20 céntimos, 0.01 para la de 1 céntimo o 2 para la de 2 euros.
Al empezar el proyecto ajusto el tamaño del objeto y lo posiciono. La
posición es diferente para cada moneda, dejo en tus manos que pongas los
valores adecuados a tu proyecto. En cuanto le hago un clic creo un clon de sí
misma. Si no fuera así no podría escoger más de una de cada valor.
Y cada vez que creo el clon hago un efecto de deslizar al centro y cambiar el
tamaño, para dar un poco de vistosidad al tema, luego la hago desaparecer y
sumo el valor de la moneda en la variable [Acumulado].

El personaje
El personaje del gato se va a encargar de dar la bienvenida y de empezar cada
partida.
En cuánto toque bandera habla y envía el mensaje de [Empezar]. Este es el
programa:
Tanto al poner en marcha el proyecto como al final de cada partida, se envía
el mensaje de [Empezar] que hace:
> Un efecto de cambio de fondo porque al programarlo he visto que no
había sensación de partida nueva. Así, cada vez que empiezo, algo
pasa.
> Escondo las variables. Si quiero la partida más fácil haré clic en el
monedero y mostrará la de [Acumulado]. La variable Precio no hará
falta mostrarla porqué el personaje me la recuerda en todo momento.
> Inicio partida, con lo que inicializo a cero la variable [Acumulado].
> La variable [Precio] se inicializa con un número al azar. Me he dado
cuenta de que, si uso números decimales, el bloque de números al
azar inventa números con muchos decimales. Esto me va mal
porque, si invento un número entre 0.02 y 5 euros, por ejemplo, me
saca 14 decimales y nunca voy a poder tener el valor exacto en
monedas. Es por todo esto que hago el truco de obtener un número al
azar entre 2 y 500 y luego divido por 100 asegurando así que el
resultado tiene, justo, dos decimales.
> Hecho esto concateno el mensaje que va a decir el gato con el valor
del precio obtenido aleatoriamente.
El monedero
El monedero súper sencillo:

Al empezar ajusto el tamaño y lo coloco, como siempre. En cuanto empiece


cada partida mostrará el mensaje de que si hago clic será más fácil. No lo
pongo en el programa de presionar bandera porqué se mostraría el mensaje
desde el principio y se mezclaría con los mensajes de bienvenida del gato.
Si hago clic en él es que quiero el juego más fácil, así que, muestro la
variable del dinero que llevo acumulado en la partida.
El botón de comprobar
Para acabar la partida hago clic en este botón que comprueba los valores de
las variables y me dice si lo he hecho bien o mal. Seguidamente vuelvo a
empezar.

Salto y caída libre


Un simulador muy sencillo de salto y caída libre, que es el movimiento de un
cuerpo bajo la acción exclusiva de la gravedad.
Creo un objeto dibujando un cuadrado con borde.
Necesito 3 variables, dos de la cuales las hago visibles y de forma deslizante
(clic derecho) para probar diferentes gravedades y fuerza de salto.
Si el salto es muy alto, el cuadrado se quedará clavado en el borde de arriba.
Para no complicar el programa lo dejo como advertencia.

Creo que el código no merece mucha explicación:


> Inicializo variables
> Un [por siempre] con la lógica del programa y dentro:
> Si toca el borde el cuadrado no se mueve. El movimiento lo
determina la variable [Velocidad_y].
> Si hago clic al ratón da el valor de salto a la variable [Velocidad_y]
para impulsar el cuadrado hacia arriba.
> El [si-no] de la estructura condicional se ejecuta cuando el cuadrado
no toca el suelo con lo que aplico la gravedad a la variable
[Velocidad_y] para atraerlo otra vez al suelo.
> Finalmente, para que se haga efectivo el movimiento cambio la
coordenada Y del objeto.

Prueba la gravedad en la luna (1,62) o en Marte (3,7) o en Júpiter (24,8).


Conocimiento del medio natural
Magnetismo
Con este sencillo proyecto no pretendo explicar el fenómeno natural del
magnetismo, sino tan sólo, recrear su efecto ya que consiste en clonar 64
flechas, en distintas posiciones, que siempre apuntan al ratón.
Necesito un objeto con forma de flecha, yo he cogido el objeto Arrow1 de la
galería, y dentro le hago los siguientes programas.

Primero defino dos variables globales (para todos los objetos) llamadas
[posX] y [posY]. También defino dos variables más, pero locales, llamadas
[miX] y [miY]. Éstas ayudaran a cada clon a posicionarse; por eso son
locales, para que cada clon tenga sus propios valores.
Luego defino un bloque personalizado con dos parámetros numéricos [clonX]
y [clonY]. Dentro fijo el valor de las variables locales con los parámetros y
creo seguidamente un clon.
Ahora toca programar qué pasa cuando se crea cada uno de los clones: fijo un
tamaño adecuado y muestro el clon. Lo posiciono escalando la posición que
se le pasa por parámetro y añado un margen. Esa multiplicación tiene sentido
porque no le voy a pasar como parámetro una posición absoluta, sino que, el
bloque personalizado, va a recibir números del ‑4 al 4, con lo que al
multiplicarlos obtendré su posición absoluta. Ahora ya pongo un bloque de
repetición infinita para que siempre apunte hacia el ratón.
Programo ahora el inicio del proyecto en que el trabajo debe ser hacer 64
clones de flechas formando una cuadrícula. Voy a intentar ser un poco
elegante con el código y no usaré 64 bloques de crear una flecha con cada
uno. Haré un recorrido con dos estructuras de repetición uno dentro de otro.
El primer bloque me servirá para ir distribuyendo a lo largo del eje X los 8
primeros clones y la segunda repetición valdrá para aumentar una fila de la
cuadrícula. Así, tendrás la 1ª fila y se crean 8 flechas distribuidas
horizontalmente. Sube a la 2ª fila y crea 8 más volviendo a comenzar por la
izquierda el eje X. Sube a 3ª fila y crea 8 más volviendo a comenzar por la
izquierda el eje X; y así sucesivamente hasta la 8ª fila.
Espero que el programa quede claro.
El ciclo del agua
Aprovecho este ejemplo parar proponer que practiques el dibujo vectorial.
El fondo

A mi fondo le faltan unas sombras que le den realismo.


Bueno, con un poco de paciencia lograrás uno mucho mejor que el mío. La
finalidad es mostrar en el fondo una montaña, algo de terreno subterráneo, un
poco de costa, el mar y el cielo.
Ahora ve a por los objetos que te hacen falta. Será el Sol, unas nubes, unos
ríos, unas flechas y unos textos. Te enseño lo que me ha salido a mí.
El río
Necesitas un río. El río tendrá que llevar el agua al mar. Hará falta hacerle
alguna animación o efecto para ello. Por tanto, ve a crear un objeto y lo dejas
ahí a la vista para luego. Es que si el río aparece más tarde de la nada no va a
quedar creíble, los ríos siempre están.
Así que crea un objeto nuevo dibujando. Ya que estás, necesitas otro río, en
este caso subterráneo, lo haces todo de una vez. El río subterráneo es para
simular las filtraciones.
A mí me ha salido esto, que superpuesto en el fondo queda así:
El Sol
Cojo el Sol de la galería y en el panel de información del objeto le pongo
directamente el valor 50 al tamaño, así ya no lo hago por código. Lo sitúo
también en el cielo, pero cerca del mar, a la derecha.

Dale un poco de vidilla haciendo que se mueva lentamente arriba y abajo,


dará una sensación, quizá aquí poco lograda, de que calienta el agua del mar.
Verás que te pongo un programa ya muy trabajado. No te creas que me sale
todo a la primera. Primero lo he pensado y he hecho un algoritmo. Así sé las
fases del proyecto y lo que tengo que programar en cada una. Mis
conclusiones son las siguientes.
Al ser un proyecto que trata las fases dentro de un ciclo, me viene bien usar
mensajes. Así cada fase hace sus animaciones y efectos y envía un mensaje
para iniciar la siguiente. De esta manera, la última puede enviar el mensaje de
iniciar la primera otra vez y el proyecto se hace cíclico.
A mí me parece correcto y así tocas otra vez la técnica de los mensajes que
estaba un poco olvidada.
No me tengas en cuenta si no me ajusto 100% al ciclo del agua real, intento
hacer un proyecto sencillo. Si crees que el ciclo del agua debería tener más o
menos fases te invito a que lo dejes bien ajustado a la realidad, pero yo, no
hablaré de sublimación, evapotranspiración, corrientes de los arroyos, etc.

Estaba con el Sol. Al tocar bandera coloca el Sol en su sitio y envía el


mensaje de la primera fase, el [Calentamiento]. Este mensaje lo recibe él
mismo, no te parezca raro porqué lo he hecho así para que también pueda ser
llamado por otro objeto. De este modo la última fase del ciclo llamará a
[Calentamiento] y volverá a empezar todo. Nada más tocar bandera empieza
la fase del calentamiento y en cuánto acaba la animación lanza la segunda
fase de [Evaporación].
La evaporación
Ahora voy a hacer un personaje abstracto que van a ser unas gotas que
simulan la evaporación del mar. Recuerda el proyecto que has hecho sobre
copos de nieve. Voy a hacer lo mismo, pero en vez de caer del suelo van a
subir des del mar hasta las nubes.
Crea un personaje nuevo que sea una gota de agua, del mismo azul que el
mar, que se note que sale de él.
Al tocar bandera, que se esconda. Como siempre que se usan clones,
normalmente, el objeto original lo tendrás que esconder y ya mostrarás cada
clon.
El programa de la izquierda se ejecuta al recibir el mensaje [Evaporación] y
crea 50 clones de ella misma, uno cada 0.1 segundos. Cuando acabe, espera 4
segundos para dejar que suban las últimas gotas y envía el mensaje [Nubes]
conforme ya ha acabado la evaporación del mar.

El segundo programa es la función que hace cada gota de agua. Primero fija
un tamaño aleatorio a cada una para que no sean todas iguales y quede un
poco mejor. Luego se muestra en una posición aleatoria desde dentro del mar
y a lo largo de éste. Tienes que probar bien las coordenadas para que las
gotas salgan del mar. Luego suma 1 unidad a la coordenada y (para que suba)
hasta una posición vertical que te convenga. Yo dejo un espacio para luego
formar una nube encima. Las distancias que te marco con las flechas son las
que yo he usado. Cuando llegue la gota al límite y ya no se cumpla la
condición sale de la estructura repetitiva y se autodestruye.
Las nubes
Ahora la tercera fase dónde se crea una nube. Añado el personaje de la
galería, la nube.
El programa que le he hecho es este:
La nube está creada desde inicio así que en cuanto se toca bandera verde, la
escondo y la preparo en cuanto al tamaño. Y ahí la dejo, sin que se vea.
Ahora sí, en cuánto reciba el mensaje [Nubes] se pone en marcha. Lo primero
es colocarse, mostrarse y quitar los efectos que tuviera por si ya ha hecho un
ciclo anterior. La hago aparecer poco a poco con un efecto desvanecer
progresivo. Lo pongo primero a 100, que será transparente, y luego en 20
repeticiones le cambio el valor hasta que sea totalmente opaca, con valor
cero.
Hecho esto desplazo la nube hasta situarla encima de las montañas.
Seguidamente le aplico otro efecto progresivamente, con una repetición, para
convertirla en un nubarrón oscuro.
Envío el mensaje lluvia para iniciar la siguiente fase.
También me interesa hacer desaparecer la nube, pero no antes de llover, sino
después, por eso programo su desaparición cuando se envía el mensaje de la
última fase [Ríos y filtraciones]”.
La lluvia
Ese nubarrón tiene pinta de descargar una buena cantidad de agua.
Voy a ir un pelín rápido puesto que es muy similar a las gotas de la
evaporación. Dibujo la gota de la lluvia; la voy a hacer más alargada que la
gota del mar.

No comento mucho. Fíjate en los valores de las posiciones y que el repetir del
clon ha cambiado la comparación ya no es “>” sino “<” y en vez de sumar la
coordenada Y, la resto para que caigan de arriba abajo. También he añadido
un sonido de la galería para la lluvia. Lo hago sonar al principio. Es bueno
añadir sonido a los proyectos, su atractivo se multiplica.
En cuanto acaba de crear los clones de las gotas, espera a que caigan las
últimas y envía el siguiente mensaje.
Ríos y filtraciones
Después de llover y nevar, el agua contenida forma los ríos y las filtraciones
subterráneas que vuelven a llevar el agua al mar.
El objeto de los ríos está creado. Ve a programarlo.
Yo he hecho esto para que tenga un cambio de brillo como si llevara agua.

Al acabar lanza el mensaje [Calentamiento] para que empiece desde el


principio el ciclo del agua de nuevo.

Arte
El arte ya se trabaja mucho con el diseño de personajes, objetos, fondos,
sonidos y demás. Aun así, se puede hacer un “arte matemático” haciendo que
Scratch dibuje líneas mediante fórmulas y funciones matemáticas. Recuerda
que no hace mucho hicimos el proyecto de las figuras bailongas. A eso me
refiero.
Arte matemático
Ahí va un ejemplo, cámbialo cómo quieras para conseguir otros efectos. Crea
un objeto que sea un punto y codifícale el siguiente programa. Hay un bloque
muy largo y, para que no quede demasiado pequeño parto la imagen en dos,
pero ten en cuenta que la segunda imagen va a la derecha de la primera.

Piano
Un piano muy sencillo para tocar con las teclas de la fila A-L. Siendo A el
DO, S el RE, … hasta la L que será el SI alto.
La gracia está en jugar con las imágenes de las partituras o listas de notas. Yo
he puesto sólo una, la del cumpleaños feliz. Dejo en tus manos hacer una
pequeña programación para cambiar el fondo del escenario y que salgan otras
y así practicar el piano.
Programo en el mismo escenario. En un [por-siempre] que tiene las
estructuras condicionales [si-entonces] para cada tecla.

La segunda columna de bloques va acoplada debajo de la primera.


Esta es la imagen que he puesto en el escenario.
Telesketch® 2.0
Telesketch es un juguete inventado en 1959 por el francés André Cassagnes i
que fue comercializado en España en los años 60. Hoy en día creo que
todavía se vende.
El juguete tiene el aspecto de una pantalla de televisión y es como un plotter
muy simple. La superficie interior tiene un polvo de aluminio y estireno en el
que una punta metálica hace surcos con el movimiento quedando el camino
marcado con una línea negra en la pantalla. Así se va creando un dibujo al
paso de la punta metálica. Esta punta se controla con dos ruedas giratorias
que la mueven vertical y horizontalmente. Para borrar el dibujo se pone el
juguete boca abajo y se agita para que el aluminio vuelva a cubrir la
superficie.
Con Telesketch crear una línea diagonal o una curva suave es realmente
difícil ya que necesita buena coordinación. Si nunca has visto uno te animo a
que lo busques un poco en Internet para ver imágenes y vídeos del juguete.
Pero bueno, superada ya la nostalgia, quiero intentar hacer un proyecto que
recuerde el funcionamiento de aquel juguete, pero mejorado. De ahí que haya
bautizado al proyecto como Telesketch 2.0.
Le añadiré unos ad-ons que superan en funcionalidad al original:
> Si lo usas podrás levantar el lápiz. En el original la línea es
inevitablemente continua con lo que el dibujo se completa con un
solo trazo.
> Podrás cambiar el grosor de la línea de dibujo. En el original la punta
metálica era una sola.
> La línea es de colores. Mucho más vistosa que la línea gris del
juguete.
Por tanto, el proyecto va a consistir en un puntero que va a dibujar una línea
de colores cambiantes a su paso.
El puntero debe moverse con las flechas del teclado arriba, abajo a izquierda
y derecha. Debe poderse cambiar el grosor de la línea a 3 modos: delgado,
normal y grueso. El cambio se hará con las teclas 1, 2 y 3 del teclado.
Para que el puntero dibuje en el escenario debes presionar la tecla B para que
baje el lápiz y, para que deje de dibujar, presiona la tecla S para subir el lápiz
y que así no dibuje a su paso.
He credo un personaje nuevo y le he llamado puntero.

Como ves es una cruz negra centrada.

He usado bastante zoom y a la hora de dibujar lo he hecho con la herramienta


de línea, manteniendo la tecla mayúscula pulsada para que sea perfectamente
vertical y luego lo mismo en la horizontal.
Me he ayudado con la cuadrícula para hacer las dos líneas de igual longitud y
que estén bien centradas.
El programa está todo escrito en el puntero.
Necesitas la extensión del lápiz.
Arriba a la izquierda tengo la inicialización, como casi siempre, pongo el
puntero en el centro, borro el dibujo existente, subo el lápiz para que empiece
sin dibujar cuando se mueva y defino el grosor de la línea en 5 que será el
tamaño normal.
Todavía en la columna izquierda, abajo, he definido un bloque personalizado
de nombre [Dibujar] y cómo parámetro un valor [ángulo]. En él programo los
bloques de dibujar al mover. Apunto en la dirección que pase por parámetro
según que tecla de dirección toque, muevo 2 pasos y le pongo un color
aleatorio al lápiz.
Definido está, luego lo usaré.
La columna central del proyecto son los programas que controlan la dirección
del puntero. Son 4 programas casi iguales. Empiezan con un bloque de
sombrero que espera que se toque una tecla de dirección. Si es tocada ejecuto
el bloque personalizado [Dibujar] pasando como parámetro el ángulo de
dibujo. Así cada vez que el usuario toque una tecla se moverá 2 pasitos y
dibujará, o no, una pequeña línea. Que dibuje o no dependerá de si el lápiz
está bajado o no.
En la columna de programas de la derecha controlo el subir y bajar el lápiz
para dibujar y el grosor de la línea. No creo que necesite más explicación.

Idiomas
Los animales en inglés
Te propongo un sencillo proyecto para aprender los nombres de los animales
en inglés.

Cada uno de los tres personajes va a tener el mismo programa salvo por dos
pequeños cambios.
De lo que se trata es que, al hacer clic sobre un personaje, éste pregunte qué
animal es en inglés. Si el usuario acierta se le felicita y se le informa de cómo
es en francés. Si no acierta se le informa del error.
Una vez tengas el código de uno de los personajes lo copias, recuerda que es
arrastrando el programa encima del icono del personaje a copiar, en la
derecha, y luego cambias la especie del animal de los dos parámetros de
traducción:

Necesitarás la extensión de la traducción, no te olvides.


Verbos irregulares
Te reto a pensar otras propuestas de traducción, como podría ser la de verbos
irregulares, con un sistema de puntuación contando los errores. Puedes jugar
con los infinitivos, pasados o participios.
Crea una lista de verbos que inicializas al empezar y que puedes programar
en el escenario.
En el proyecto puedes usar este bloque para traducir uno de los elementos
escogidos al azar:
Puedes dar pistas de la traducción diciendo con qué letra empieza:

Y lo que dé tu imaginación que a estas alturas seguro que estás como pez en
el agua con Scratch.

Y para acabar un juego multi jugador


Voy a proponerte un juego multiplayer. Un laberinto de dos jugadores.
Ganará la partida el jugador que antes llegue a la meta. Un jugador controlará
su personaje con las teclas de dirección y el otro con las teclas WSAD.

Los laberintos
Primero necesitas un recurso. Necesitas dibujos de laberintos con el fondo
transparente. Yo he buscado en Internet [labyrinth scratch] y [maze images
scratch] y me han salido bastantes. También he encontrado una web donde
hay un tutorial https://inventwithscratch.com/ y puedes descargar imágenes
del laberinto https://inventwithscratch.com/downloads/, haciendo clic en
cada imagen. Cuantas más tengas más niveles puedes hacer en el juego.
Empieza un nuevo proyecto y ponle nombre. Lo primero que necesitas es
crear un objeto que será el laberinto y que va a tener tantos disfraces como
niveles quieres que tenga.

El gatito no te va a hacer falta.


Primero carga la primera imagen con la opción que ves a la derecha. Cambia
el nombre al objeto, como va a haber dos jugadores y necesitarás dos
laberintos, una sugerencia es que lo llames [Laberinto 1] o similar.
Seguidamente carga los niveles añadiendo disfraces al objeto.
En la parte izquierda tienes la pestaña [Disfraces] , dentro, en la parte
inferior, usa la siguiente opción para cargar otro disfraz al objeto. Debes
hacerlo tantas veces como niveles quieres que tenga el juego.

Cargados todos los niveles ve a programar el objeto ya que


es muy sencillo. El laberinto debe hacer dos cosas inicializarse y cambiar de
disfraz cada vez que se deba pasar de nivel.
Puedes probar el proyecto a ver si se coloca en la parte izquierda y con un
tamaño adecuado.
Ahora vas a duplicar el objeto. Haciendo clic derecho encima del mismo en el
panel de objetos lo conseguirás. Una vez duplicado necesita un pequeño
cambio en su programa. La posición inicial del segundo laberinto debe ser
120,0 en lugar de los -120,0 del primer laberinto.
Prueba el proyecto a ver si quedan bien colocados. En función del tamaño de
tus imágenes debes adaptar los valores. A mí me queda así:

Los dos objetos tienen los mismos disfraces y en el mismo orden. Debe ser
así. Los dos jugadores juegan el mismo laberinto en la misma partida.
La meta
Debes tener algún objeto a la salida del laberinto para que sea la meta.
Cuando el jugador toque ese objeto, habrá ganado.
Yo he dibujado una barra horizontal de color verde y la he puesto en la
salida.
La única programación que tiene es que al empezar se sitúe en su sitio.

Duplica el objeto, colócalo a la salida del segundo laberinto y adapta los


valores de inicialización. A mí me salen 115,115. Adapta el programa a tus
propios valores.
Los jugadores
Tienes que dibujar a los jugadores que van a ser controlados con las teclas.
Como con los laberintos, crea uno, lo programas y luego lo duplicas y
adaptas.
Dibuja un pequeño punto de color. Yo he escogido el rojo. Lo que debes
tener en cuenta es que el punto pase sobradamente por los pasillos del
laberinto, es importante.

Un consejo: usa el zoom y usa la tecla CONTROL para hacer una


circunferencia perfecta.
Hecho el objeto ponle nombre y pasa a programarlo.
Las funcionalidades que debe tener el objeto son:
> Colocarse delante de la puerta del laberinto al empezar.
> Movimiento con las teclas correspondientes.
> No avanzar si toca una pared del laberinto.
> Al recibir un nuevo nivel colocarse en el punto inicial.
> Al tocar la meta que le corresponde, decir que ha ganado y enviar el
mensaje de [Siguiente nivel] para que se cargue el siguiente disfraz
del laberinto.
Creo que ya es todo, pero quizá cuando programes falte algo, ya verás.
Para el primer jugador, el de la izquierda.
Tanto al empezar a jugar como cuando se cambie de nivel tienes que colocar
al jugador en su sitio. Mis valores son los de la imagen, adapta los tuyos,
como hasta ahora.

Ahora programa el movimiento a izquierda del primer jugador.


Pon una repetición [por siempre] ya que en todo momento debes controlar el
movimiento. Pregunta con una estructura [si entonces] si se está presionando
la tecla A. Siendo así resta 4 píxeles a la posición actual de manera que se
mueva a izquierda. Justo entonces pregunta si tocas el laberinto, si es
verdadero, súmale 4 a la posición.

Primero, el jugador puede entrar en el laberinto porque el fondo de la imagen


es transparente. Así, pasando por las zonas transparentes, no se detecta el
contacto. En el momento que se toca una de las paredes, al existir dibujo, la
colisión se detecta. Entonces si se toca la pared suma 4 a los 4 que habías
restado con lo que el jugador se queda quieto. Pues esto mismo para las tres
teclas de dirección que te queda programar: D, S y W.
Ten en cuenta que las estructura [si entonces] de las teclas restantes van
debajo de la de la tecla a, pero dentro de la estructura [por siempre].
Las teclas W y S controlan el movimiento vertical con lo que debes sumar y
restar al eje Y no al X como con las otras teclas.

Prueba el proyecto y comprueba que el movimiento es correcto. Si no es así


repasa que las estructuras [si entonces] estén unas debajo de otras y metidas
en el [por siempre].
Si veis que el jugador no pasa por algún pasillo, seguramente es que el objeto
demasiado grande. Edita el disfraz y hazlo más pequeño.
Ganar la partida

El jugador ganará la partida cuando


toque la meta que les corresponde. Hecho esto se debe pasar al siguiente
nivel.

Ahora, antes de duplicar el jugador comprueba que todo va bien. Empieza


una partida y recorre todo el laberinto a ver si reacciona bien al tocar la meta
y carga otro nivel.
El segundo jugador
Ve a duplicar el objeto y haz las modificaciones:
> Las posiciones. Deben corresponder a la entrada del segundo
laberinto. Tanto al empezar el juego como en el cambio de nivel.
> En el programa del movimiento cambia las teclas según esta
correspondencia: la flecha izquierda en el lugar a la tecla A, flecha
derecha por la D, arriba por la W y abajo por la S.
> Aquí también cambia [laberinto 2] por [laberinto 1] en la detección
del choque.
> En el programa que controla si has ganado cambia [meta 1] por [meta
2].
Y creo que ya está. Reta a alguien a echar una partida contigo y suerte.
Mejoras
Puedes introducir mejoras en el juego, tantas como quieras. Te propongo
unas cuantas.
> Control de partidas ganadas. Con un par de variables puedes
controlar las partidas ganadas de cada jugador.
> Cambio de fondo o efecto en los cambios de nivel.
> Que el segundo jugador sea controlado con la placa micro:bit,
dirigiéndolo con la inclinación.
Despedida
Bueno, llegó la hora de despedirse. Espero haber sido un buen compañero de
viaje en este mundo de la programación educativa.
También deseo que la programación se te haya metido bien adentro y ya no la
dejes jamás. ¡Ayuda a los y las peques! Se avecinan tiempos en los que tener
conocimientos de programación va a ser necesario en el mundo educativo y
laboral. Iba a decirte que lo presiento, pero creo de veras que es una realidad.
Hay muchas actividades y proyectos con los que puedes seguir tu camino.
Busca cerca de ti. Hay grupos de gente maravillosa que trabaja con la
programación y robótica educativa. Algunos de ellos de forma altruista.
También están los Code Clubs. Echa un vistazo http://codeclubspain.org/
yo ya soy voluntario.
¡O toma la iniciativa! Ponte al frente de algún proyecto, habla con las
escuelas, con las asociaciones de padres y madres, con la biblioteca o júntate
con personas cómo tú que les importe la educación y se animen con la
tecnología.
Un abrazo sincero y hasta la próxima. Salud y bits.

[1]
La programación textual es aquella en la que los programas se escriben en un fichero de texto con
una sintaxis concreta y definida por el lenguaje de programación usado.

[2]
El MIT Media Lab es un laboratorio dentro de la Escuela de Arquitectura y Planificación en el
Instituto de Tecnología de Massachusetts. Fundado en 1985. Está dedicado a los proyectos de
investigación en la convergencia del diseño, la multimedia y la tecnología.
[3]
Los comandos son instrucciones simples que se usan en programación.
[4]
Las estructuras también son instrucciones, pero de mayor complejidad que los comandos.
[5]
La interfaz es el medio gráfico que nos permite programar, es el conjunto de elementos que se ven
en pantalla y se usan para construir los programas y ver el resultado.
[6]
Un parámetro es un modificador de un bloque que hace variar el efecto de su ejecución. En este caso
el parámetro es el número de pasos que debe moverse el objeto. Un parámetro acostumbra a ser una
magnitud expresada como número, texto u opciones a escoger de una lista.

[7]
Las extensiones te las explico con detalle más adelante. Usa este botón de abajo a la izquierda de la
pantalla para añadir la de LÁPIZ

[8] Todos, o casi todos, los objetos de la galería de Scratch vienen con el sonido [Pop] añadido por
defecto. No pasa nada porque esté ahí, pero si lo quieres quitar, haz clic sobre su icono y aparece el
aspa de borrar dentro de un cubo en la parte superior derecha, hazle clic y se le quitará el sonido al
personaje.

[9]
Éste es un concepto de programación que debe entenderse. Figura que estoy diciendo velX = velX *
-1 con lo que parece que iguale algo imposible. El hecho es que esta expresión no es una comparación,
sino que es una asignación. Informáticamente lo primero que se hace es la operación de la
multiplicación y luego se asigna el resultado a la variable. Por ejemplo, si en este momento [velX] tiene
el valor de 5, se toma el valor de 5 para multiplicarse por -1. El resultado es -5. Hecho esto se asigna
ese valor a la variable [velX] que, a partir de este momento, toma el valor de -5. Un uso muy habitual
de esta técnica es en variables acumuladoras, que en programación, se escriben así: x = x + 1. Cabe
destacar que en informática siempre se usa el símbolo asterisco para indicar una multiplicación.
[10]
En programación orientada a objetos, una instancia es un objeto de una clase particular, una
ocurrencia de una determinada clase.
[11]
En programación, un hilo de ejecución es cuando la ejecución de un programa se puede lanzar en
paralelo con otros.

[12]
Para la imagen del objeto que hace de fondo te recomiendo que busques imágenes grandes con
extensión svg. Éstas se importan a su tamaño real ya que son imágenes vectoriales. Si importas otro tipo
de imagen como jpg o png Scratch la va a escalar para que encaje en el escenario la va a reducir a
480x360.

También podría gustarte