PROGRAMACIÓN CON SCRATCH II

02 noviembre 2018 1

Autor:  Agustin Gonzalez Redondo. M Rocío García de la Fuente.

 

En un artículo anterior se ha analizado la aplicación, acercándonos al mundo de la programación con un sencillo programa en el que se daba movimiento a un personaje animado.

En el presente artículo se pretende dar una visión más general de las herramientas más típicas de cualquier lenguaje de programación, existentes en todos los lenguajes y códigos, cada una con una estructura distinta en función del lenguaje empleado, pero con un significado común a todas ellas. Comenzando así una serie de artículos en los se tratará de dar una visión general de la programación con Scratch.

El trabajo se centrará en el uso de condicionales, bucles y variables, para configurar una historia en la que interactuarán de forma continuada dos personajes.

Las condicionales permiten tomar decisiones en el código siempre y cuando se cumpla una premisa. Gracias a estos operadores podremos decidir qué hacer, dependiendo del resultado ejecutará un código u otro. En Scratch hay dos tipos dentro del bloque de “Control”:

  • Simple (figura 1): ejecuta un bloque de instrucciones cuando la proposición es verdadera, en caso contrario no hace nada.

03 diciembre 2018 1

  • Doble (figura 2): la estructura ejecuta un bloque de programas cuando la condición de entrada es verdadera, y ejecuta otro distinto cuando dicha condición es falsa.

03 diciembre 2018 2

Lo bucles son sentencias que ejecutan repetidas veces un trozo de código, hasta que la condición asignada a dicho bucle deja de ser cierta. En Scracth, también dentro del bloque de “Control” existe varios tipos:

  • Repetir (bucle for) (figura 3): instrucción en la que se puede ejecutar una instrucción conociendo de antemano el número de iteraciones (repeticiones).

03 diciembre 2018 3

  • Repetir mientras (Do .. While) (figura 4): este bucle realizará un trozo de código de forma repetida siempre y cuando se cumpla una determinada condición, por ejemplo una de las situadas en el bloque “Sensores”.

03 diciembre 2018 4

  • Por siempre (figura 5): repite una serie de instrucciones de manera continuada cuando se está ejecutando el programa.

03 diciembre 2018 5

El último punto a tratar en el presente artículo son las variables, o estructuras de datos referenciadas por un nombre que pueden cambiar de contenido durante la ejecución del programa. Así, con Scratch se pueden crear etiquetas, utilizando el bloque “Datos” (figura 6), asignándoles un valor inicial susceptible de ser modificado durante la ejecución del programa, empleando los operadores presentes en el bloque “Operadores”.

03 diciembre 2018 6

También hay que decir que para poner en práctica todo lo visto con anterioridad, Scratch permite realizar programación en paralelo, otros lenguajes no lo permite, en definitiva el programa escrito puede realizar varias tareas al mismo tiempo, lo que simplifica en muchos casos la edición, permitiendo seccionar el programa en trozos más pequeños que resuelvan un problema concreto.

03 diciembre 2018 8

Para dar comienzo al programa, se seleccionará un Fondo nuevo dentro de los que el programa Scracth tiene disponible (figura 7), y creamos los disfraces del primer personaje, editándolos con la herramienta que Scratch tiene para ello, en este caso se duplica el disfraz1 y se le da la vuelta, para sustituir al disfraz 2 (figura 8).

03 diciembre 2018 7

A continuación y para comenzar a programar es interesante comenzar por situar al personaje siempre en la misma posición y con el disfraz y el tamaño que se desea, para evitar posibles errores debidos a comienzos no controlados (figura 9).

03 diciembre 2018 9

Se crean ahora dos variables que determinarán el estado en el que se encuentra el personaje, la primera de ellas “vel_x”, servirá para determinar la velocidad de desplazamiento en horizontal de este objeto, con valor 5 inicial, mientras que la segunda de ellas indicará cuando se debe mover el personaje, inicialmente se le dará un valor 0 y se cambiará por programación a 1 si se desea detener el personaje (figura 10).

03 diciembre 2018 10

Aprovechando la posibilidad que brinda Scratch para programar en paralelo, creamos ahora un programa que permita dar movimiento al primer personaje en función de la variable que controla su movimiento, empleando dos de los bucles de repetición analizados con anterioridad (figura 11).

03 diciembre 2018 11

De la misma forma, se crea otro programa paralelo, ahora para controlar cuando el personaje alcanza uno de los extremos se genera un código que primero separa al objeto del borde, y así evitar contactos indeseados, después modifica la velocidad de movimiento del objeto invirtiéndola, si bien el programa no hace correctamente la cuenta indicada, que ha tenido que ser modificada para adaptarse a la situación, y por último cambia el disfraz para que mire en la dirección del desplazamiento (figura 12).

03 diciembre 2018 12

Se crea en este momento un nuevo personaje, y para aprovechar la programación elaborada hasta el momento, sólo se necesita duplicar el primer elemento, y realizar pequeños cambios en la programación y en los disfraces del nuevo personaje, así de forma similar a como se realizó con el primer personaje, se modificarán su posición y aspecto inicial así como la velocidad de desplazamiento (figura 13), comprobando que el programa se comporta como debe.

03 diciembre 2018 13

Finalmente, falta la interacción entre ambos personajes, que se producirá cuando ambos se toquen, para lo que será necesario emplear la variable “stop” definida al comienzo del proyecto, para detener a los dos personajes, por lo que basta con emplear un condicional doble que modifique el valor de la variable en función de la situación de ambos personajes (figura 14). El valor 1 de «stop» se corresponde con los personajes detenidos, momento en el que se da comienzo a un diálogo entre ellos.

03 diciembre 2018 14

Para establecer el diálogo se emplea una condicional simple, ambos dentro de un bucle por siempre, que se ejecuta continuamente durante el programa (figura 15), y que sólo tiene lugar cuando hay un contacto entre los personajes. Una vez finalizado, se procede a realizar un desplazamiento de ambos protagonistas, para evitar un nuevo contacto que diera lugar, de forma involuntaria, a la repetición de todo el diálogo.

03 diciembre 2018 15

Así, de una forma sencilla y empleando todas las herramientas de programación vistas hasta el momento, si se divide un problema complejo en varias partes más sencillas de resolver, gracias a la posibilidad de programar en paralelo que ofrece Scratch, se puede conseguir dar vida y animar una historia.

AUTOR: AGUSTÍN GONZÁLEZ REDONDO

Robótica-Programación

Introducción a la física de partículas y observación (Muon detector)

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Para comenzar este artículo es preciso realizar una breve introducción al modelo estándar de partículas, para intentar comprender el conocimiento científico que yace detrás del proyecto que trataremos de explicar. El modelo standard (fuente CERN) figura 1. Desde la década de 1930 los descubrimientos […]

Leer más
Robótica-Programación

Control de motores Arduino (IV). Motores Paso a Paso

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO El segundo tipo de motores capaces de controlar su posición de forma interna, los servomotores fueron los primeros que hemos tratado en anteriores artículos, son los motores paso a paso (figura 4. Varios modelos de motores paso a paso), dispositivos ampliamente empleados en impresoras […]

Leer más
Robótica-Programación

Python ·3D con Processing

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Hoy volvemos de nuevo a trabajar con Python, en este caso, añadimos nuevas posibilidades a una IDE que ya conocemos, Processing, además de trabajar con este lenguaje de programación realizaremos una primera animación en 3D. Para comenzar debemos añadir un nuevo modo de trabajo […]

Leer más
MENÚ
Revista