1 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Tema 1: Conceptos básicos 1.1 Qué es Scratch: ejemplos de proyectos 1.2 Versiones del programa 1.3 Configuración 1.4 Entorno de trabajo 1.5 Bloques de programación o Las instrucciones o Expresiones Booleanas o Condicionales o Ciclos o Variables o Hilos o Eventos Tema 2: Los personajes: 2.1 Propiedades 2.2 Modificaciones 2.3 Creación 2.4 Escenario 2.5 Trayectoria y dibujo Tema 3: ¿Cómo y dónde programamos? 3.1 Instrucciones y bloques 3.2 Zona de programación 3.3 Antes de empezar 3.4 Estructura Secuencial 3.5 Estructura Interactiva I 3.6 Expresiones 3.7 Estructura Interactiva II 3.8 Estructura Condicional Ejercicios de la Unidad 1 Manipulación de objetos Animaciones Dibujar polígonos Encuentra el error Evaluación de la unidad 1: 10 preguntas tipo test 2 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN TEMA 1: Conceptos básicos 1.1 ¿Qué es Scratch? Scratch es un entorno de programación creado en el Massachusetts Institute of Technology (MIT) como resultado de la investigación llevada a cabo en el Lifelong Kindergarten Group. Su lema es: "Imagina-Programa-Comparte". Es heredero directo del constructivismo de Piaget y posterior construccionismo de Seymour Papert (creador del LOGO de los años setenta y ochenta). Scratch aprovecha los cambios tecnológicos ocurridos desde entonces para mejorar sustancialmente la interfaz del entorno y hacer que el objetivo de la programación de ordenadores sea la resolución de un problema sin tener que preocuparse de la sintaxis. Se trata de un editor para programar animaciones y juegos, todo ello utilizando pistas de música y dibujos propios. Visualiza este vídeo, https://vimeo.com/65583694, es ilustrativo y te animará saber que has tenido una buena elección al querer realizar este curso. El autor recomienda Scratch para mayores de 8 años. Asegura que ayuda a desarrollar conceptos de programación en un entorno de creatividad artística. En el aula entre otras cosas: Desarrolla: el pensamiento lógico y algorítmico; métodos para solucionar problemas de manera metódica y ordenada; el hábito de hacer auto diagnosis con respecto a su trabajo; la capacidad de poner en duda las ideas de uno mismo. Posibilita: la obtención de resultados complejos a partir de ideas simples; el aprendizaje colaborativo a través del intercambio de conocimiento… Los alumnos trabajan a su ritmo en función de sus propias competencias; aprenden a asumir conceptos matemáticos: coordenadas, variables, algoritmos, aleatoriedad, fundamentos de la programación; usan distintos medios: sonido, imagen, texto, gráfico… En este curso, después de haber creado algunos juegos o hecho algunos proyectos, podrás compartir tus obras con otros usuarios en línea, este juego será muy interesante para los niños, ya que aprenderán a hacer cálculos matemáticos, razonar sistemáticamente y dejar libre su imaginación jugando. En este enlace hay un interesante artículo del Dr. David Malan profesor de Harvard, donde describe su gran funcionalidad. 3 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 1.2 Versiones Cuando accedemos a http://scratch.mit.edu aparece una página parecida a esta: (Guarda la dirección de esta web en tus favoritos, trabajaremos con ella durante todo el curso) La versión 1.4 of line la puedes adquirir desde este enlace (http://scratch.mit.edu/scratch_1.4 ). La versión 2.0 of line de Scratch, es la última y es igual que la versión on-line, la puedes adquirir desde este link: (http://scratch.mit.edu/scratch2download). Este curso está preparado para trabajar on-line, para ello deberás darte de alta en la web de Scratch, http://scratch.mit.edu es gratuito y fácil de registrarse. No obstante, si quieres, puedes bajarte la versión 1.4 del programa, desde la web mencionada anteriormente. Scratch es un fenómeno de alcance mundial. Es más que un lenguaje de programación, se definen a sí mismos como "una comunidad de aprendizaje con varios millones de proyectos compartidos". Cualquier programa que hagas en este entorno lo puedes compartir con el resto del mundo con sólo pulsar un botón. Se trata de compartir para aprender. Puedes navegar por la web de Scratch y ejecutar cualquiera de los proyectos compartidos, ver cómo se han hecho y si tienes alguna idea para ampliarlo puedes hacer tu propia versión, que formará parte del árbol de reinvenciones del programa original. 1.3 Configuración El programa con el que vamos a trabajar no necesita configuración puesto que está en la nube, no obstante si quieres cambiar el idioma, no tienes más que pinchar en el icono que verás en la parte superior izquierda de la ventana. Si decides instalar el programa en tu ordenador (aunque como ya hemos dicho en el tema anterior este curso está configurado para realizarlo totalmente on line), puedes hacerlo desde esta web https://scratch.mit.edu/scratch_1.4/. Elige tu sistema operativo, clic sobre el deseado y guardas el archivo en tu escritorio donde aparecerá este icono: Doble clic y sigue los pasos que salen por defecto. En la misma ventana encontrarás algunas preguntas frecuentes que te pueden ser útiles. 4 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 1.4 El entorno de trabajo Esta es la ventana donde trabajaremos, en ella distinguimos distintas zonas. En función del color con que están marcadas: Naranja: Bloque de programación organizado por categorías. Cada una de ellas se identifica con un color y las acciones de cada categoría mantienen su color: Verde claro: Bloque de acciones correspondientes a la categoría seleccionada (en este caso “movimiento”. Verde oscuro: Zona de los personajes. Azul oscuro: Botones para crear nuevos personajes o nuevos fondos (el escenario puede cambiar de color). Morado: Zona de programación. Rosa: Botones para poner en marcha y detener la ejecución del programa. Rojo: Escenario donde se ejecutarán nuestros programas. Amarillo: Botones para manipular los personajes del escenario Azul claro: Menús del programa. Debes tener en cuenta que el bloque de programación consta de categorías y que cada categoría tiene sus propias acciones: Instrucciones, Expresiones Booleanas, Condicionales, Ciclos, Variables, Hilos, Eventos. (Todas estas acciones, se especifican en el apartado siguiente) 5 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 1.5 Bloques de programación Scratch construye los programas mediantes bloques parecidos a los de un puzle: Instrucciones Expresiones Booleanas Condicionales Ciclos Variables Hilos Eventos Cada uno de estos bloques los pondremos en práctica a medida que vayamos desarrollando los distintos ejercicios y actividades que se proponen en las unidades que conforman el curso. INSTRUCCIONES En programación, una instrucción simplemente es la indicación o directiva que le dice al ordenador que haga algo. Piensa en ella como un comando o sentencia. En Scratch, cualquier bloque cuya etiqueta se lea como una orden, es una instrucción. Uno de esos bloques le da instrucciones a un objeto (sprite) para que diga algo: Otro bloque de instrucciones indica que vayas a algún sitio: A veces, quieres que una instrucción se ejecute solo bajo ciertas condiciones. Esas condiciones se definen en términos de expresiones Booleanas, en las que nos fijaremos a continuación. EXPRESIONES BOOLEANAS En programación, las expresiones Booleanas, son expresiones que son o ciertas o falsas. En Scratch, cualquiera de los bloques que tiene forma de diamante alargado es una expresión Booleana. Uno de esos bloques es: Después de todo, es cierto o es falso que el botón del ratón (mouse) esté presionado. Otro de esos boques es: 6 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Después de todo, es cierto o es falso que un número dado es menor que otro número. Con expresiones Booleanas podemos construir estructuras condicionales, en las que fijamos ahora nuestra atención. CONDICIONALES En programación, una condición es algo que debe ser cierto para que algo pueda pasar. Una condición es entonces decir que “se evalúa para verdadero” o “se evalúa para falso”. En Scratch, cualquier bloque cuya etiqueta diga “si”, “al presionar” o “hasta que” es un tipo de constructo condicional. Uno de esos bloques es: El constructo anterior se conoce generalmente como un “si constructo”. Con este podemos darle instrucciones a un objeto para que por ejemplo, diga “hola” únicamente cuando el usuario presione el botón izquierdo del ratón (mouse): Un constructo relacionado es “si - si no” constructo Con el constructo anterior damos instrucciones al objeto para que diga “hola” o “adiós”, dependiendo de que el usuario haya presionado el botón izquierdo del ratón (mouse): 7 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Ten en cuenta de que estos constructos pueden anidarse para permitir, por ejemplo, tres condiciones diferentes: El constructo anterior podría llamarse “si-si no”, “si-si no” constructo Otro bloque condicional es: Y otro más de este tipo es: Algunas veces, quieres que una o varias de estas instrucciones se ejecuten repetidamente de manera continua. Para implementar esta conducta, debemos dirigir nuestra atención a los “ciclos” (loops). CICLOS En programación, un ciclo puede causar la ejecución de múltiples instrucciones. En Scratch cualquier bloque cuya etiqueta comience con “por siempre” o “repita” es un constructo repetitivo o cíclico. Uno de esos bloques es: 8 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Este constructo nos permite, por ejemplo, dar instrucciones a un objeto para que indefinidamente diga “Miau” durante un segundo, con intervalos de un segundo: Otro bloque le permite hacer el ciclo un número específico de veces: Y otro bloque le permite repetir un ciclo hasta que una condición sea verdadera: Algunas veces, quieres ejecutar una instrucción muchas veces, cada una de ellas variando ligeramente su comportamiento. Por lo que ahora nos fijaremos en las variables VARIABLES En programación una variable es un “sitio” para almacenar valores, de la misma manera en que x y y son variables populares en álgebra. En Scratch, las variables se representan con bloques que tienen forma de círculos alargados, que solo puedes etiquetar tú. Las variables, generalmente hablando, pueden ser locales o globales. En Scratch, una variable local solo la puede usar un objeto; una global la pueden usar todos los objetos. Las variables nos permiten, por ejemplo, dar instrucciones a un objeto para que cuente de manera ascendente desde 1: Una variable que solo toma dos valores posibles; por ejemplo, 1 para verdadero o 0 para falso, se llama variable Booleana 9 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Con: instrucciones, expresiones Booleanas, condicionales, ciclos y variables, ahora en su acervo como bloques de construcción, podemos explorar ya dos constructos de programación de mayor nivel, comencemos por los hilos. HILOS En programación, un hilo es como un mini código dentro de un programa que se puede ejecutar al mismo tiempo que lo hacen otros hilos. Entonces, un programa con múltiples hilos, puede hacer muchas cosas al mismo tiempo. En Scratch, cualquier bloque cuya etiqueta comience con “al presionar”, está indicando o demarcando esencialmente el inicio de un hilo: piensa en que lo que Scratch llama “programas” como un hilo (técnicamente los “programas” corren en hilos, bueno pero eso no importa). Uno de esos bloques es: Como sugiere la etiqueta del bloque anterior, este hilo se comienza a ejecutar cuando el usuario hace clic en la bandera verde ubicada en la esquina superior derecha de Scratch. Entonces, un programa con dos de estos bloques, tiene “dos hilos de ejecución” que comenzaran a ejecutarse simultáneamente cuando el usuario presione la bandera verde. Con frecuencia, es útil utilizar hilos separados para tareas conceptualmente diferentes. Por ejemplo, quieres hacerle seguimiento a si el usuario en algún momento presiona una tecla determinada durante la ejecución de un programa para, por ejemplo, implementar un interruptor que prenda (1) y apague el sonido (0). Toma nota, que en este par de códigos, el hilo ubicado a la izquierda es el encargado de generar el maullido, si la variable “sonido” tiene almacenado el valor 1 (on); mientras que el hilo de la derecha constantemente comprueba y recuerda si el usuario ha enmudecido o encendido el sonido, presionando la tecla “m”. Relacionados con los hilos están los eventos, en los que a continuación fijaremos nuestra atención. 10 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN EVENTOS En programación, múltiples hilos puedan comunicarse unos con otros mediante invocación y manejo de eventos. Un evento, entonces, es como un mensaje que un hilo envía a otro. En Scratch, los bloques cuyas etiquetas comienzan con “enviar a todos” invocan eventos, así como los bloques cuyas etiquetas comienzan con “al recibir” manejan eventos. Un bloque que invoca un evento es: Un bloque que maneja un evento es: Un evento no solo puede ser invocado por un bloque, sino que las acciones de un usuario pueden invocarlo también. Por ejemplo, al hacer clic en la bandera verde de Scratch, efectivamente se invoca un evento que se maneja por: En Scratch, no solo los eventos permiten la comunicación entre hilos, sino que también permiten a los objetos comunicarse unos con otros. Por ejemplo, dos objetos pueden querer jugar Marco Polo entre ellos, con el comportamiento de uno de ellos definido por el hilo que se encuentra abajo, a la izquierda y el comportamiento del otro objeto definido por el hilo que se encuentra abajo a la derecha: Además de instrucciones, expresiones Booleanas, condicionales, ciclos, variables, hilos y eventos puedes construir programas divertidos e interesantes. De hecho, exploremos el funcionamiento interno de lo que a primera vista parece ser un programa muy complejo pero que en realidad, es solamente una aplicación de estos bloques de construcción. 11 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN TEMA 2 Los personajes 2.1 Propiedades En la zona de personajes aparecen los que estamos usando. Si hacemos clic en la “i” de un personaje en concreto, o un clic con el botón derecho sobre el personaje, en el menú desplegable “info” veremos todas sus propiedades: Podemos ver y modificar diferente características del personaje, algunas de las cuales se pueden modificar también en modo ejecución. Si vamos variando la dirección, veremos cómo afecta al personaje. Si combinamos la variación de la dirección con el estilo de rotación veremos también cómo afecta la combinación de ambas propiedades. Para cambiar estas propiedades en modo ejecución tenemos estas instrucciones: Debes tener en cuenta que la dirección no es como el sistema de coordenadas al que estamos acostumbrados: 90 es a la derecha. -90 Es a la izquierda. 0 es arriba. 180 es abajo. Y, obviamente, podemos poner cualquier valor entre -180 y 180 para indicar una dirección concreta, donde los valores positivos señalan a la derecha y los negativos a la izquierda: 12 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 2.2 Modificaciones Duplicar, eliminar, y cambiar el tamaño de los personajes (cambios) Los personajes que vemos en el escenario los podemos manipular directamente con estos botones: Tampón: Duplica el personaje del escenario donde se aplica el tampón, Tijeras: Elimina el personaje del escenario donde se aplican las tijeras, Agrandar: Aumenta el tamaño del personaje del escenario donde se aplica Empequeñecer: Disminuye el tamaño del personaje del escenario donde se aplica Practica con ellos en tu Scratch. 2.3 Crear nuevos personajes Para añadir un nuevo personaje a nuestro proyecto tenemos cuatro opciones diferentes: Elegir un personaje de la galería de Scratch. Dibujarlo nosotros. Subir una imagen. Hacer una foto con la cámara En cualquier caso, si posteriormente queremos modificar el personaje, pincha en la pestaña disfraces y aparecerá un editor de imágenes, lo mismo que si queremos partir de un dibujo hecho por nosotros. Este editor de imágenes puede trabajar en modo vectorial o en modo mapa de bits, con estas dos apariencias: Ambos entornos de dibujo son muy similares y sólo difieren respecto a las herramientas propias de cada entorno. Ahora sería un buen momento para practicar con los personajes y jugar con las diferentes opciones y recuerda que puedes pasar de un modo a otro en cualquier momento. 13 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 2.4 El escenario Ya sabes que la zona donde aparece el “gatito” es el escenario, es ahí donde los personajes ejecutarán las acciones que hayamos programado. El escenario tiene 480 píxeles de ancho por 360 píxeles de altura y en el centro mismo del escenario está el punto (0,0). Por tanto, la coordenada x tendrá valores situados entre -240 y 240, y la coordenada y entre -180 y 180. Podemos ver cómo varían los valores de las coordenadas del ratón y de un personaje cuando los movemos por el escenario. Hay que fijarse que las coordenadas del ratón están justo debajo del escenario, mientras que las coordenadas del personaje están debajo de su imagen en la parte superior derecha de la zona de programación. De hecho, en el personaje, lo que indican estas coordenadas es la posición del "centro" del personaje (su centro de rotación). 14 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 2.5 Trayectoria y dibujo Todos los personajes de Scratch tienen asociado un lápiz, que podemos activar con la instrucción 'baja el lápiz' de la categoría 'Lápiz' y desactivar con la instrucción sube el lápiz. Cuando está activo, (cuando se mueve el personaje) el lápiz va dibujando su trayectoria, lo cual nos permite hacer dibujos. Estos dibujos se hacen sobre una capa que es común a todos los personajes, por eso la instrucción “Borrar”, de la misma categoría “Lápiz”, no borra solamente los dibujos hechos por un personaje, sino todos los dibujos que se encuentren en la capa de dibujo. Hay que tener en cuenta que la “punta” del lápiz está situada en el centro de rotación del personaje. Este lápiz tiene asociado un color, una intensidad y un grosor que podemos cambiar de forma dinámica con las instrucciones correspondientes. Por otra parte, los personajes también tienen una instrucción que se llama “sellar”, que les permite dejar estampado en la capa de dibujo una imagen de sí mismo. Ahora que tienes un cierto dominio sobre la manipulación de los personajes dentro del escenario. ¿Sabrías borrarlos? (tijeras), ¿duplicarlos? (tampón), ¿crear otros nuevos? (editor de dibujos), etc. 15 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN TEMA 3: ¿Cómo y dónde programar? 3.1 Instrucciones y bloques En este apartado intentaremos explicar aquellas partes del entorno que nos servirán para programar, y también empezaremos a hacer programas sencillos. Las instrucciones, expresiones, ciclos, eventos… están categorizados según lo que hacen. Tiene un marco con un botón por categoría. Si pulsas cualquier botón de estos aparecen las instrucciones… que corresponden a cada uno de las categorías de la imagen Este es uno de los puntos fuertes de Scratch… ¡las instrucciones son bloques! Y con los bloques construiremos los programas. Las instrucciones… de cada una de las categorías tienen el mismo color que el botón de que le corresponde: Azul para el Movimiento Morado Claro para la Apariencia Lila para Sonido Verde oscuro para el Lápiz Naranja para Datos (variables) Marrón para Eventos Marrón claro para Control Azul claro para Sensores Verde para Operadores Morado oscuro para Más Bloques (Las que se muestran corresponden a la categoría "Movimiento") 16 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 3.2 Zona de programación La zona de programación (se muestra vacía) marcada con un óvalo rojo, es el lugar donde pondremos las instrucciones. Debes tener en cuenta que esta zona está vinculada estrechamente al personaje seleccionado en el escenario, (remarcado en la zona de los personajes). Cuando añadimos las instrucciones, estarán asociadas a un personaje específico. En la figura se puede ver que tenemos seleccionado el gatito rosa, por lo tanto si añades instrucciones, estarán asociadas al gato rosa que es el que está seleccionado. 3.3 Antes de empezar Un programa es una lista organizada de instrucciones que, al ejecutarse, hacen que el ordenador se comporte de una manera determinada. Programar será, por tanto, partir de una tarea concreta e intentar proporcionar unas instrucciones al ordenador para que haga lo que nosotros queremos. Piensa que a programar se aprende programando. No hay atajos. La única manera de ser competentes programando es practicar mucho. Esto quiere decir, equivocarse mucho. Que nadie se decepcione por cometer errores en sus programas, este es el proceso habitual. De hecho, esta es una de las partes más divertidas de programar. Posiblemente estarás gran parte de tu tiempo jugando a detectives, o resolviendo puzles, actividades equivalentes a encontrar errores en tus programas. 17 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN ¿Cómo se hace esto en Scratch? Empezamos desde cero. 1. 2. 3. 4. Accede a Scratch Clic en “Mis cosas” Clic en nuevo proyecto Aparece el “gatito” Verás la ventana que se muestra y lo primero de todo es hacer que el gatito haga cosas sencillas. Para añadir instrucciones a un programa, las arrastraremos, con el ratón, de la zona de instrucciones a la zona de programación (haremos clic sobre la instrucción y, sin soltar el botón del ratón, moveremos la instrucción donde le corresponda). En la figura hemos cogido y arrastrado tres instrucciones diferentes hacia la zona de programación: 18 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Haz doble clic sobre cada una de las tres instrucciones en la zona de programación y fíjate en el gatito del escenario. Si haces doble clic sobre la instrucción “mover”, veremos el gatito moviéndose 10 pasos adelante (en la dirección que tiene asociada). Si hace doble clic sobre la instrucción de girar, veremos cómo cambia la dirección del gatito, y si haces doble clic sobre la instrucción "ir", el gato vuelve al su origen. Estos espacios en blanco con números dentro de cada instrucción-bloque son editables. Probamos de cambiar el 10 de la instrucción "mover" por un 100 y haz doble clic sobre la instrucción. ¿Qué ves?.. Que el gato se mueve 100 pasos en lugar de 10. De hecho, lo que tenemos ahora son tres programitas (cada uno de una sola instrucción) que afectan al mismo gatito. Los ejecutamos (ejecutar es llevar a cabo la instrucción o instrucciones de un programa) haciendo doble clic sobre ella. Pero normalmente queremos combinar instrucciones para hacer programas más largos y sofisticados. 3.4 Estructura secuencial En Scratch, combinaremos las instrucciones pegándolas, una debajo de la otra, de manera que se ejecutarán primero las que están más arriba (para ser rigurosos, le llamaremos estructura secuencial). Como ejemplo ahora, podemos combinar las tres instrucciones que hemos puesto dentro de la zona de programación: Unimos las instrucciones arrastrando una instrucción hasta ponerla debajo de la instrucción que debe ejecutarse antes. En la figura ya hemos encajado la instrucción "mover" a la instrucción "ir", y estamos a punto de pegar (izquierda) la instrucción "girar". A la derecha vemos el resultado final. Cuando estamos arrastrando la instrucción, nos aparecerá una raya blanca indicando donde encajará. Más adelante nos será muy útil. Ahora tenemos un programa con tres instrucciones, que se ejecutará de la siguiente manera: Primero “ir” el centro de coordenadas del gatito en la posición con coordenada “x” igual a 10 y coordenada “y” igual a 0 (el centro del escenario). Después “mover” el gatito, 10 pasos. Finalmente “girar” el gatito 15 grados en sentido contrario a las agujas del reloj (girar un número positivo de grados significa girar en el sentido contrario a las agujas del reloj). Lo ejecutaremos haciendo doble clic sobre el programa (los tres bloques pegados). Sin embargo, en Scratch, es más habitual ejecutar los programas pulsando la bandera verde 19 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN (arriba a la derecha). Es muy fácil hacerlo, ya que sólo tenemos que poner la instrucción correspondiente. Hacemos clic sobre el botón de la categoría de instrucciones 'Eventos' (rodeado rojo en la figura) y arrastramos a la zona de programas la instrucción “al presionar bandera verde” (cercado verde). Después, arrastramos el programa bajo la instrucción que acabamos de añadir (rodeado azul) El resultado final es el programa es este: Fíjate en que, al presionar la bandera verde, nuestro gatito hará lo mismo que hacía antes. Haz clic en la bandera verde varias veces. ¿Qué pasa? ¿Sabrías explicar por qué pasa lo que ves? Tenemos diez categorías de instrucciones, en cada categoría podemos encontrar un buen número de instrucciones que podemos utilizar en nuestros programas. No nos dedicaremos a explicar una a una todas las que pone a nuestra disposición Scratch. Esto sería bastante aburrido. Lo que haremos es ilustrar con ejemplos las posibilidades de Scratch y, a medida que las necesitemos, las usaremos y explicaremos. Continuamos con el programita que hemos empezado a hacer. Imaginemos ahora que queremos que el gatito haga algún tipo de ruido. De la categoría “Sonido” añade la instrucción-bloque “tocar sonido” (eligiendo “gato” que lo traducen como “meow”, en el desplegable del bloque) al programa. 20 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Ahora, cuando pulses la bandera verde verás que el gato hace lo que ya sabemos y, además, maúlla. Los personajes pueden tener diferentes vestidos, ¡veámoslo!.. Sin salir del programita con el que estamos trabajando, elije la pestaña “Disfraces”. Ten en cuenta que el gatito tiene dos vestidos, llamados (en este caso) “costume1” y “costume2”. Puedes dejar el nombre que sale por defecto, en tu proyecto, o cambiarlo por el que más se ajuste a tus necesidades. Si volvemos a la pestaña “Programas” y hacemos clic sobre el botón de la categoría “Apariencia”, podemos añadir a nuestro programita la instrucción “siguiente disfraz”. Hagámoslo y vemos qué pasa: 21 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Pulsamos la bandera verde varias veces y fíjate que los vestidos del gatito alternan, girando al mismo tiempo, en cada clic Este cambio de vestidos será la base de las animaciones hechas con Scratch. Todavía nos queda, sin embargo, algo de camino por delante. Si ahora quisieras no tener que hacer clic en la bandera verde para repetir la acción, ¿cómo lo harías?... pues no podrías hacerlo aún. Hay ciertas estructuras de programación que todavía no hemos visto. En la próxima actividad veremos construcciones básicas que nos permitirán hacer programas más sofisticados. Por cierto, queda un pequeño detalle. Si queremos eliminar de la zona de programación cualquier instrucción, lo arrastraremos hacia la zona de instrucciones y, sea cual sea la categoría seleccionada, desaparecerá. Exactamente lo mismo podemos hacer con un conjunto de instrucciones pegadas. 22 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN 3.5 Estructura Interactiva (I) Repetir es una de las acciones que los ordenadores hacen mejor. ¡Son incansables! Además, es completamente necesario poder repetir para poder hacer programas. Sin la habilidad de hacer repeticiones habría problemas que los ordenadores ¡no podrían resolver! Comenzaremos por la repetición más sencilla: Las estructuras de control en Scratch tienen esta forma de contenedor abierto. En este caso, la repetición “por siempre”, el nombre es bastante informativo. Los programas que pondremos dentro del 'por siempre' se repetirán sin fin. Volvemos al programa que usábamos en el apartado 3. Vamos a poner todo, excepto la instrucción inicial “al presionar” (bandera verde), dentro de un “para siempre” y después de nuevo, lo unimos todo con la instrucción “al presionar” (banderita verde). En la figura vemos el proceso con todos los detalles: 23 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Así pues el programa que tenemos es este: Pulsa la banderita verde, y verás que hace lo mismo que hacía, pero ahora lo hace siempre. Esto es porque las instrucciones que están dentro del “por siempre” se ejecutan sin parar. Lo puedes detener pulsando el botón rojo junto a la bandera verde (el botón de stop). Podemos decir a Scratch que queremos repetir sólo un número determinado de veces. Arrastrando y cambiando de lugar las instrucciones como hemos visto en el caso del "por siempre"', para ello podemos utilizar el "repetir 10" un cierto número (10 en este caso. Si nos interesas, este 10 lo podemos cambiar. En la figura hemos optado poniendo por 25. 24 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN El programa queda así: Está bastante claro qué hará el programa. Ahora tendremos las acciones dentro del "repetir" ejecutadas 25 veces al pulsar la bandera verde. Pero puede ser que queramos repetir sólo si pasa algo relacionado con nuestro programa. Es decir, puede que la condición para dejar de repetir dependa de lo que está pasando mientras se ejecuta el programa, y por tanto no podamos saber, antes de ejecutar el programa cuántas veces debe repetirse. Veamos un ejemplo. El "repetir hasta que" tiene un agujero de contornos angulares en el extremo derecho, por tanto, está esperando que introduzcamos una expresión lógica... ... Sí, sí, pero... ¿de qué estamos hablando?, ¿expresiones lógicas?, ¿agujeros de contornos angulares?... ¿cuándo hemos visto esto? Pues… todavía no lo hemos visto. Precisamente por ello habrá que hacer un pequeño paréntesis. 3.6 Expresiones No todo lo que está categorizado son propiamente instrucciones. No hemos hecho esta distinción hasta ahora para simplificar, pero ahora conviene entrar un poco más en detalle. En las categorías “Operadores” y “Sensores”. Encontrarás unos bloques distintos a los vistos hasta el momento. 25 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Compara la instrucciones de la categoría de movimiento "mover" y la de control "por siempre”, con las expresiones de los operadores "sumar” y “es menor a” y las de los sensores “distancia a menú” y ¿“ratón presionado?” Expresiones Las expresiones se caracterizan por devolver valores. De una expresión, se espera que calcule o mida algo y devuelva el resultado. No son propiamente instrucciones, sino que deben utilizarse en lugares muy determinados que imponen su utilización. Ten en cuenta que hay expresiones-bloque con contornos redondos y expresiones-bloque con contornos angulares. Las primeras, las de los contornos redondos, son expresiones numéricas, es decir, deben devolver un valor numérico. En cambio, las otras, de contornos angulares, son expresiones lógicas1 con dos posibles valores: “cierto” o “falso”. En la figura vemos la expresión de sumar dos números, con un lugar a cada lado del “+” para poner los números, y la expresión “distancia a menú”, que nos dice la distancia del personaje, al que pertenece el programa del que la expresión forma parte, a otro personaje elegido del pequeño menú desplegable que vemos. En cambio la comparación entre dos números “<” o la pregunta “¿ratón presionado?” se responderán con valores “cierto” o “falso”. Estas expresiones van a lugares especialmente preparados para colocar en él estos bloques. Los bloques de contornos redondos pueden ir a agujeros con contornos redondos. Por ejemplo, los parámetros de la instrucción mover están preparados para poner una expresión numérica, pero los mismos parámetros de las operaciones aritméticas (como el “+” que ya hemos visto) también están preparados para poner otras expresiones numéricas. Así podemos componer las operaciones, por tanto, podemos componer expresiones Para poder construir instrucciones más sofisticadas 26 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Para mover el personaje un número de pasos entre 21 y 25, elegido al azar2). Igualmente, los agujeros con contornos angulares están preparados para acomodar expresiones lógicas, es decir, expresiones que tienen como posible respuesta sólo dos valores: 'cierto' o 'falso'. Y también podemos componer operaciones de la misma manera que lo hemos hecho con las expresiones numéricas. Incluso podemos componer los dos tipos de expresiones, si el bloque nos lo permite. Veamos algunos ejemplos: Esta es una expresión lógica que nos dirá si el doble de la raíz cuadrada de 10 es menor que 7 sumado a un número al azar entre 1 y 10 (y el resultado, 'cierto' o 'falso', dependerá del número al azar que salga, ¡por supuesto!) Esta expresión nos dirá si tenemos el ratón pulsado y la tecla espacio pulsada. Fijémonos en la operación lógica y (conjunción). De la misma manera disponemos en Scratch de las operaciones de disyunción (o) y negación (no) 3. Así pues, resumiendo, los agujeros de contornos redondeados esperan que pongamos expresiones numéricas (que pueden ser tan sencillas como un solo número, o tan sofisticadas como queramos) y los agujeros de contornos angulares esperan que pongamos una expresión lógica (de valor 'cierto' o 'falso'). Tenemos varios bloques-expresión para construir expresiones. Están esencialmente en las categorías Operadores y Sensores. 1 También conocidas como expresiones booleanas. 2 Como si tuviéramos un dado con 5 caras, numeradas 21, 22, ..., 25 3 Recordemos que la conjunción responde 'cierto' sólo cuando sus argumentos son ambos 'cierto' y la disyunción responde 'falso' sólo cuando sus argumentos son ambos 'falso'. 3.7 Estructura Interactiva (II) Decíamos que hay estructuras interactivas que repetirán las instrucciones que hay en su interior en función de lo que ocurra mientras se ejecuta el programa. Ahora ya podemos intuir que esto ocurrirá en función del resultado de una expresión lógica. Esta es la razón que se llamen repeticiones condicionales. Veamos un ejemplo. Supongamos que queremos un programa que haga lo mismo que el programa que estamos usando en esta práctica, es decir, que mueva el gatito 10 pasos, el gire 15 grados, maúlla y alterne vestidos, pero queremos que lo haga hasta que el usuario pulse la tecla espacio. Ahora ya sabemos cómo manipular los bloques para construir el programa, de modo que ya no es necesario detallar tanto como antes. El programa que tendremos es: 27 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Nótese que para hacerlo más divertido hemos decidido introducir algo de aleatoriedad en el programa. Ahora, cada repetición, se moverá un número de pasos al azar entre 1 y 10 y girará un ángulo entre -30 y 30 grados, también al azar. Ejecutadlo y asegúrate de entender bien qué está pasando. ¿Verdad que cuando llega a los bordes queda el gatito oculto? Lo podemos resolver pidiendo a cada repetición que rebote si toca un borde. Hay una instrucción que hace precisamente eso: Considera que las repeticiones indefinidas o de un determinado número de veces son bastante fáciles de entender, pero las repeticiones condicionales esconden sutilezas que sólo dejan de serlo con la práctica. Insiste en entender bien las repeticiones condicionales, con variaciones de estas prácticas. 3.8 Estructura Condicional Para finalizar este apartado, estudiaremos la última estructura básica que nos queda por ver: la estructura condicional. En este caso tenemos una estructura de control que sirve para decidir si un cierto conjunto de instrucciones se ejecuta, o no, en función de una condición (es decir, de una expresión lógica). Estas son las estructuras “si____ entonces” y “si___ entonces…. si no”. Las encontrará categorizadas en 'Control'. 28 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN Si ya has entendido las repeticiones condicionales, estas no te deben costar nada. La idea es que si la expresión lógica (fíjate en los agujeros de contornos angulares) es “cierto”, ejecutaremos las instrucciones dentro del “si”, si esta expresión es “falso”, no ejecutaremos nada en el caso del “si______ entonces “, y las instrucciones dentro del “si no” en el caso del “si_____ entonces ... si no”. Supongamos ahora que queremos que el gatito empiece desde el origen de coordenadas y que se mueva y gire al azar como hemos visto antes, pero queremos que maúlle sólo cuando pulsamos la tecla “m”. Para ello utilizaremos la estructura condicional “si”. Es posible que, a veces pulses la tecla “m” y el gato maúlle más de una vez. No te preocupe, que eso ya es correcto. Lo que puede pasar es que mientras que tú piensas que has tocado la tecla una vez, Scratch ha tenido tiempo de leer la tecla varias veces y tomárselo como una orden de pulsar la tecla varias veces. Para poder ver ejemplos del “si____ entonces... si no” lo mejor que puedes hacer es pensar en ti mismo. Hay un componente creativo ¡muy importante en la programación! Hasta ahora hemos visto y jugado con programitas bastante simples, que lo único que pretendían era ilustrar los conceptos explicados. En la próxima Unidad veremos cómo construir programas con cierto grado de sofisticación... y de ¡diversión! Quizás cuesta de creer, pero con lo que ya sabes tienes más que suficiente para hacer programas muy interesantes. Pero antes de empezar la unidad 2 se recomienda realizar estos ejercicios que se proponen, no dudes en acudir al tutor/tutora siempre que lo necesites. 29 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN EJERCICIOS DE LA UNIDAD 1 Lo primero que debes hacer, si aún no lo has hecho, es enviar a la tutora del curso tu nombre de usuario y contraseña de Scratch. En la parte inferior de la ventana donde está ubicado este ejercicio en la plataforma, hay una opción que te permite hacerlo. Te proponemos hacer, por lo menos, uno de estos cuatro ejercicios, pero es conveniente que los hagas todos. 1. Crear una animación donde un gato y una manzana giren sin parar. Puedes hacer todas las modificaciones que quieras. 2. Crea una animación donde una bola se desliza por una barra inclinada 5 veces: o o o o o Objeto 1: Escribir una palabra cualquiera. Objeto 2: Dibujar una bola de color con degradado o sólido. Objeto 3: Dibujar una barra rectangular horizontal de color. Objeto 4: Dibujar una barra inclinada. Si haces esto, dentro del escenario debería salir algo parecido a la figura: 3. Dibujar polígonos. o Intenta hacer un programa que dibuje 3, 4, 5... polígonos regulares diferentes: un triángulo, un cuadrado un pentágono... Los polígonos deben ser completamente visibles en la pantalla. o Ten en cuenta que las instrucciones "baja el lápiz" y "sube el lápiz" de la categoría "Lápiz" hacen que los objetos puedan dibujar en el escenario. Y recuerda que puedes utilizar la pieza "repite ()" de la categoría "Control" cuando hay que repetir un grupo de instrucciones un número determinado de veces. o Inténtalo y si no te sale, en este link verás una forma sencilla de hacerlo. Puedes complicarlo tanto como quieras. También te dejamos este ejemplo de una forma compleja de hacerlo. 4. Encuentra el error Quieres que un gato se sitúe en medio del escenario, lo atraviese y se haga mayor. Con esta estructura del programa que te presentamos, funciona sólo la primera vez que se pulsa la banderita verde, pero queremos que se repita. ¿Dónde está el problema? 30 PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIÓN
© Copyright 2024