Depende La ejecución condicional

Documentos relacionados
Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos

ZCARTAS: Iniciación a la suma y resta de números enteros Introducción Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Introducción a Scratch Autor

Balón Prisionero. Introducción. Scratch

Instrucciones para la familiarización de los alumnos con el instrumento de evaluación de EECL (ES)

Tutorial: Cuento Aristotélico

Manual Scratch ELEMENTOS DEL ENTORNO. Familias de Bloques. Bloques pertenecientes a una familia. Los bloquecitos tienen el mismo color que su familia.

MANEJANDO FICHEROS Y CARPETAS

Traslaciones, Homotecias, Giros y Simetrías

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

6.1. Conoce la papelera

SCRATCH APRENDE A PROGRAMAR JUGANDO

Combinar comentarios y cambios de varios documentos en un documento

Página 1 de 7. Qué es Scratch?

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Manual de OpenOffice Impress

Introducción al diseño híbrido con ZW3D

Curso de TIC educativas JITICE 2015

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7

MACROS Y FORMULARIOS

Figura 1 Abrir nueva hoja de cálculo

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Ejercicio paso a paso. Abrir, guardar y cerrar un documento de CorelDRAW 12

Módulo II - PowerPoint

Enunciado unidades fraccionarias fracción fracciones equivalentes comparar operaciones aritméticas fracciones propias Qué hacer deslizador vertical

TEMA 5: HOJAS DE CÁLCULO. Edición de hojas de cálculo con OpenOffice Calc

Curso Internet Básico - Aularagon

GAME MAKER JUEGO DE LABERINTOS

Operación Microsoft Access 97

SIIT SISTEMA INFORMÁTICO DE INSPECCIONES DE TRABAJO. Modulo de Planificación Manual de Usuario

Tutorial de PowerPoint

CÓMO CREAR NUESTRO CATÁLOGO

A continuación, se detalla el uso de los accesorios más comunes:

ENTORNO DE TRABAJO DE WORD 2007

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2

Módulo II - Word. Eliminar caracteres Selección de texto Selección de una palabra Selección de varias palabras...

Centro de Capacitación en Informática

La ventana de Microsoft Excel

Tutorial de Paint. Tutorial de Paint

Microsoft Word Los formatos son las características que le asignamos a cualquier carácter, a un conjunto de caracteres o a otros elementos.

Índice general de materias LECCIÓN 7 74

Unidad: Representación gráfica del movimiento

RAPID TYPING. Qué es?

Una plantilla es un modelo que puede servir como base para muchas hojas de cálculo. Puede incluir tanto datos como formatos.

OpenOffice Writer LA PÁGINA

Qué es y para qué sirve Excel2007?

Como dibujar las vistas de una pieza en Autocad

OBTENER DATOS EXTERNOS

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Guía de sesión de resolución de problemas AgentCubes.

PROYECTOS PASO A PASO PARA SCRATCH

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

Microsoft Office XP Excel XP (I)

1. La nueva interfaz del programa

PROGRAMACIÓN CREATIVA PARA EL APRENDIZAJE DE LAS MATEMÁTICAS Y LA RESOLUCIÓN DE PROBLEMAS CON SCRATCH

TUTORIAL DIDÁCTICO Material recomendado. PICASA Crear un álbum de fotos compartido

Con este programa pueden abrirse formatos sencillos de texto (como TXT) y editarlos de manera básica.

PRÁCTICAS DE GESTIÓN GANADERA:

Manual Impress Impress Impress Impress Impress Draw Impress Impress

Manual básico BSCW. 1. Acceder al espacio de trabajo. Hacer clic en Acceder a su área de trabajo.

Vamos a ver las dos formas básicas de arrancar PowerPoint.

CORREO ELECTRÓNICO GMAIL. 1 Enviar correo electrónico Acceder a una cuenta de correo electrónico... 2

PRÁCTICAS DE OPENOFFICE CALC

El escenario INICIAR PRESENTACIÓN

MATEMÁTICAS CON LA HOJA DE CÁLCULO

CREAR FORMAS BÁSICAS

INSTRUCCIÓN DE SERVICIO NOCIONES BÁSICAS PARA DIAGRAMAS DE FLUJO. MICROSOFT VISIO

Estructurar la información dentro del ordenador:

Un botón puede tener hasta cuatro estados diferentes. Cada estado representa el aspecto del botón en respuesta a un evento del ratón:

COLEGIO APUNTES ACCESS

Documentación de la Práctica 1 para la asignatura de Nuevas Tecnologías de la Programación (NTP)

5.2.1 La Página Principal

Cátedra de Cardiología

Unidad 1. Introducción. Elementos de Excel

TEMA 4: CORREO ELECTRÓNICO: OUTLOOK 2007 CORREO ELECTRÓNICO: OUTLOOK EJECUTAR EL ENTORNO DE TRABAJO GESTIÓN DE CORREO ELECTRÓNICO 3

Asistente Liberador de Espacio. Manual de Usuario

MANUAL BÁSICO DE WRITER

Dependiendo de la utilización, forma y resultado deseado, Word propone diferentes columnas:

INTRODUCCIÓN VISIO Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Vamos a ver los principales conceptos básicos que debemos

Manual de Usuario del Correo Electrónico IBM Lotus inotes 8.5.1

LAS BARRAS. La barra de acceso rápido

Paso 1 de 13. Paso 2 de 13. Guía de aprendizaje de Flash CS5 Tutorial 3. Creación de un logotipo textual.

Creando scrolls. Scratch: Entorno de programación

EDICIÓN Y FORMATO (II)

8 3D MODELER. Las vistas son: - Vista Y-Z: vista del alzado del dibujo. - Vista X-Z: vista del perfil del símbolo. Las Vistas

MANUAL DE USUARIO DE TPV TÁCTIL

WinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario.

EMPLEO NTIC`S II SEGUNDO SEMESTRE

ASISTENCIA TÉCNICA A LA SEGURIDAD INFORMÁTICA EN PYMES MANUAL KEEPASS WINDOWS

MANUAL DE USO DEL PROGRAMA ARKITOOL 2012

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA


3. Navegar por Internet


Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Transcripción:

Depende La ejecución condicional Descripción de la sesión En esta sesión se introduce el uso de la ejecución condicional cuando lo que se quiere hacer depende de alguna condición. También se introducen los números aleatorios para que en un programa no ocurra siempre lo mismo. Ejemplo 1: moverse por un laberinto Partiremos del proyecto disfraces-pacman 1 que contiene los objetos Pacman y Laberinto. Ejercicio 1 Una vez dentro del proyecto, pulsa en para tener una copia del proyecto, y ponle el nombre sesion6-ejercicio01. Añade un script para que el Pacman se coloque en una posición inicial del laberinto, y abra y cierre la boca repetidamente. 1. Inicializar la posición, dirección y disfraz 2. Repetidamente cambiar el disfraz La posición inicial será la (-115, 115), mirando a la derecha, y con la boca abierta. Quizás necesites poner un pequeño retardo para que se vea claramente la acción de abrir y cerrar la boca. Para cambiar el disfraz utiliza el siguiente bloque de la paleta de Apariencia: Ahora implementaremos el movimiento del Pacman, por ahora en línea recta. Esto requiere un nuevo script para el mismo objeto: ambos se ejecutarán a la vez. Cada vez que un objeto tenga varios scripts es conveniente que te acostumbres a poner la parte de inicialización en todos los scripts del objeto. El nuevo script será: 1. Inicializar la posición, dirección y disfraz 2. Por siempre 2.1 mover 2 pasos 1 disfraces- pacman: http://scratch.mit.edu/projects/12110834/ 1

El problema es que de esta forma el Pacman sigue avanzando hasta salirse del laberinto. Necesitamos que si llega a la pared del laberinto entonces se pare, y si no que siga avanzando: 1. Inicializar la posición, dirección y disfraz 2. Por siempre 2.1 si toca la pared 2.1.1 decir Ay! 2.2 si no 2.2.1 mover 2 pasos Necesitamos una nueva estructura de control llamada ejecución condicional, ya que lo que tiene que hacer el objeto (en este caso, decir o moverse ) depende de que una condición (en este caso, toca la pared ) sea verdadera o no. Cada vez que el programa llegue a 2.1 se comprobará si se cumple dicha condición. En caso afirmativo (la condición es verdadera) se ejecutará 2.1.1, y en caso negativo (la condición es falsa) se ejecutará 2.2.1. La instrucción de ejecución condicional es el quinto bloque de la paleta de Control: Como en otros bloques de control vistas, la ventana con bordes en ángulo indica que en ese lugar debe colocarse una condición (en nuestro caso: toca la pared ). Y a diferencia de otros bloques de control, éste tiene dos huecos. En el primero se colocan los bloques que se ejecutarán si la condición es verdadera (en nuestro caso: decir Ay! ), y en el segundo los bloques para cuando la condición sea falsa (en nuestro caso: mover 2 pasos ). Esta instrucción de ejecución condicional recibe también el nombre de instrucción si ya que comienza con la dicha palabra. Para la condición, utiliza el bloque de la paleta de Sensores: Para elegir el color adecuado, haz clic con el ratón sobre el recuadro de color, y luego sobre un lugar de los bordes del laberinto (color azul). 2

Completa el script. Debería quedarte así: Comprueba cómo funciona. Ahora haremos que el usuario puede controlar el Pacman usando las teclas de flecha del teclado: la flecha hacia arriba hará que el Pacman gire a la dirección 0º, la flecha derecha a la dirección 90º, la flecha abajo a la dirección 180º, y la flecha izquierda a la dirección -90º. Utilizaremos el siguiente bloque de la paleta de Eventos: Necesitaremos 4 scripts, uno para cada tecla de flecha. Para no abarrotar de scripts al objeto Pacman, pondremos estos scripts en el objeto Laberinto. Pero desde el Laberinto no se puede modificar la dirección del objeto Pacman, por lo que necesitaremos que los dos objetos se comuniquen entre sí. Ya vimos que los objetos pueden comunicarse mediante el paso de mensajes, pero necesitaríamos 4 mensajes y de nuevo 4 scripts adicionales en el objeto Pacman para recibirlos. Así que utilizaremos una variable para comunicar la información necesaria entre los dos objetos. Llamaremos a la variable giro y almacenará el valor de la dirección (en grados) en la que debe orientarse el Pacman. 3

Crea la variable para todos los objetos en la sección Datos. En este caso no es necesario monitorizar su valor dentro del escenario, así que puedes desactivar la marca al lado del nombre de la variable: Ejercicio 2 sesion6-ejercicio02. Construye los 4 scripts para el Laberinto, cada uno en la forma: 0. Al presionar la tecla de flecha arriba 1. fijar la variable giro para apuntar hacia arriba Ejercicio 3 sesion6-ejercicio03. Cuál debería ser el valor adecuado de inicialización de la variable giro? Añade las instrucciones de inicialización necesarias a los dos scripts del objeto Pacman. El siguiente paso es utilizar el valor de la variable giro en el Pacman, de forma que cambie su dirección dependiendo de ese valor. El nuevo comportamiento que queremos es: 1. Inicializar la posición, dirección, disfraz y la variable giro 2. Por siempre 2.1 si toca la pared 2.1.1 decir Ay! 2.2 si no 2.2.1 mover 2 pasos 2.2.2 cambiar la dirección de acuerdo a la variable giro 4

Haz los cambios adecuados y prueba el programa. SI te parece que no es fácil controlar el Pacman porque se mueve muy rápido, prueba a añadir una instrucción de espera de algunas centésimas de segundo. Dónde deberías ponerla? Ejemplo 2: Pacman no se rinde: reiniciar el juego Prueba el programa y comprueba qué ocurre cuando el Pacman toca un muro. Verás que ni siquiera arrastrando el Pacman con el ratón a otra posición el juego vuelve a empezar correctamente. Modificaremos el programa para que Pacman diga Ay! sólo durante un momento, y el juego vuelva a empezar desde el principio. Necesitamos limitar el tiempo en el que se dice Ay! y rehacer la inicialización. Así, tenderemos: 1. Inicializar la posición, dirección, disfraz y la variable giro 2. Por siempre 2.1 si toca la pared 2.1.1 decir Ay! por 2 segundos 2.1.2 inicializar la posición, dirección, disfraz y la variable giro 2.2 si no 2.2.1 mover 2 pasos 2.2.2 cambiar la dirección de acuerdo a la variable turno 2.2.3 esperar 0.01 segundos Ejemplo 3: Pacman se vuelve verde: otras ejecuciones condicionales Vamos a hacer que Pacman se vuelva de color verde (avergonzado) cuando se choque con un muro, y que posteriormente el juego se reinicie. Prueba el programa y comprueba qué ocurre cuando el Pacman toca un muro. Parece un cambio sencillo, pero verás que cualquier modificación en un programa, por pequeña que parezca, puede tener complicaciones no previstas a priori. 5

Ejercicio 4 sesion6-ejercicio04. Añade un nuevo disfraz al objeto Pacman: puedes usar el archivo pacman-green.gif, que tienes disponible en la plataforma. Cambia la parte 2.1 del script para que quede de la siguiente forma: 2.1 si toca la pared 2.1.1 cambiar disfraz a pac-man-green 2.1.2 esperar 2 segundos 2.1.3 inicializar la posición, dirección, disfraz y la variable giro La espera es para poder dar tiempo a que se vea el disfraz verde. Comprueba el funcionamiento del programa. Verás que no es exactamente el que queríamos. Por qué? No hemos tenido en cuenta lo que está haciendo el script responsable del movimiento del Pacman: el que hace que abra y cierre la boca cambiando de disfraz. Se producen 2 problemas: Cuando el Pacman se mueve, aunque no choque, el bloque: hace que cambie no sólo entre los disfraces de boca abierta y cerrada, sino que también pase por el disfraz verde. Cuando el Pacman toca el muro, el script de movimiento continúa cambiando disfraces, lo que hace que no se pueda ver el disfraz verde durante 2 segundos, como queríamos. Para resolver el primer problema tenemos que usar el bloque de cambio de disfraz absoluto: Pero cómo saber a qué disfraz cambiar en cada momento? Piensa en una solución. 6

En realidad ya hemos visto qué tipo de construcción usar: la ejecución condicional, pues el nuevo disfraz que debe usarse depende del disfraz que se tenga en ese momento. De esta forma: 4.2 si el disfraz actual es pac-man-open entonces 4.2.1 cambiar disfraz a pac-man-closed 4.3 si no 4.3.1 cambiar disfraz a pac-man-open Si miras la condición que hemos puesto en 4.2 verás que necesitamos comparar dos disfraces: el que lleva puesto en ese momento el objeto y uno disfraz concreto. No hay forma en Scratch de comparar disfraces, pero sí pueden compararse dos números con el operador de igualdad: El operador de igualdad es una condición que resulta ser verdadera cuando el valor de la ventana de la izquierda es igual que el valor de la ventana de la derecha, y resulta ser falsa en caso contrario. En Scratch es posible obtener para un disfraz su número de disfraz: al final de los bloques de la paleta de Apariencia verás un bloque reporter del número de disfraz: Si activas la marca para monitorizarlo, al ejecutar el programa verás qué número tiene cada disfraz. También puedes ver el número asociado a cada disfraz en la pestaña de Disfraces del objeto Pacman. Así, la condición que necesitamos para expresar si el disfraz actual es pac-man-open será: Ejercicio 5 sesion6-ejercicio05. Cambia el script de movimiento del Pacman para que use cambios de disfraz absolutos en la forma explicada. Comprueba el funcionamiento del programa y explica su funcionamiento, que verás que aún no es el que queríamos. Por qué pasa esto? 7

El problema está en cómo hemos escrito la ejecución condicional: 4.2 si el disfraz actual es pac-man-open entonces 4.2.1 cambiar disfraz a pac-man-closed 4.3 si no 4.3.1 cambiar disfraz a pac-man-open El punto 4.3 indica que en cualquier otro caso en que el disfraz no sea pac-man-open se cambia a pac-man-open. Y eso incluye el caso de que se esté usando el disfraz verde, y eso hace que al chocar Pacman con el muro se continúen cambiando los disfraces. Se te ocurre cómo arreglar el problema? La solución es usar dos instrucciones condicionales, una dentro de otra. A esta construcción se le llama instrucciones de ejecución condicional anidadas. Ahora deberías escribir: 4.2 si el disfraz actual es pac-man-open entonces 4.2.1 cambiar disfraz a pac-man-closed 4.3 si no 4.3.1 si el disfraz actual es pac-man-closed entonces 4.3.1.1 cambiar disfraz a pac-man-open Observa que la nueva instrucción condicional anidada 4.3.1 no tiene parte si no. Hay ocasiones (como ésta) en la que no se necesita hacer nada cuando la condición es falsa, en estos casos se usa un bloque condicional sin alternativa, también disponible entre los bloques de la paleta de Control: Ejercicio 6 sesion6-ejercicio06. Implementa el script de movimiento de Pacman según lo expresado más arriba para 4.2 y 4.3. Comprueba que el cambio de disfraces es adecuado durante todo el juego. 8

Ejercicio 7 sesion6-ejercicio07. Al plantear el Ejercicio 2 dijimos que el script de respuesta a las teclas pulsadas por el usuario podría ponerse en el objeto Pacman, pero no lo hicimos para no situar 4 scripts adicionales en ese objeto que ya tiene dos. Sin embargo, utilizando las instrucciones de ejecución condicional anidadas, puede hacerse de otra forma. Modifica el script de movimiento de Pacman de manera que contenga también las instrucciones para responder a las teclas pulsadas por el usuario, y elimina los 4 scripts que tienes en el Laberinto. Pista: utiliza el bloque: Ten en cuenta que ya no necesitarás la variable giro: desde el propio script de movimiento de Pacman puedes cambiar la orientación directamente. Antes usábamos esa variable para comunicar el cambio de orientación desde el objeto Laberinto al objeto Pacman, pero ahora ya no tiene sentido. Ejemplo 4: Completando el juego: Pacman come plátanos Vamos a hacer que Pacman se pueda comer dos racimos de plátanos situados dentro del laberinto. Para ello utilizaremos el objeto Bananas de la biblioteca de objetos, categoría Cosas. Cuando el objeto Pacman toque un objeto Bananas, el objeto Bananas tocado desaparecerá. El objeto Bananas sólo necesita un script que lo haga desaparecer del escenario cuando el objeto Pacman lo toque: 1. mostrar 2. esperar hasta que Pacman lo toque 3. esconder 9

Para esconder y mostrar un objeto utilizaremos los siguientes bloques de la paleta de Control: Hay que tener en cuenta que, aunque Pacman se haya comido algún objeto Bananas, si toca la pared y se reinicia el juego, el objeto Bananas debe volver a mostrarse. La mejor forma de que el objeto Bananas se entere de que el juego se ha reiniciado es que el objeto Pacman le envíe un mensaje Reinicio cuando esto ocurra. Así, tendríamos: 0. Al recibir el mensaje Reincio 1. mostrar 2. esperar hasta que Pacman lo toque 3. esconder No es necesario que el objeto Bananas tenga 2 scripts idénticos, uno para cuando se pulse la bandera verde y otro para cuando se reinicie el juego. Piensa en cómo podrías conseguir los dos comportamientos con un solo script en el objeto Bananas. Ejercicio 8 sesion6-ejercicio08. Implementa esta versión del juego: Añade un objeto Bananas a tu programa. Utiliza el botón de Encoger de la barra de botones superior para hacer los plátanos adecuados al tamaño del Pacman: Coloca el objeto Bananas en un lugar del laberinto Escribe el script para este objeto, y modifica el script de movimiento del Pacman para que envíe el mensaje de Reinicio cuando sea necesario Pulsa en el botón de Duplicar de la barra de botones superior para duplicar el objeto Bananas, y arrastra el segundo objeto hasta otra posición del laberinto: Comprueba el correcto funcionamiento del programa. 10

Ejemplo 5: Chutando un balón con números aleatorios Partiremos del programa de la Sesión 4, Ejemplo 1: gato-saca 1. Cambiaremos el objeto Árbitro por un portero que intentará detener el tiro de Pelé. El programa se hace más interesante si el movimiento del balón sigue una dirección diferente en cada ejecución del programa. Esto se puede conseguir con números aleatorios: Números generados al azar por el ordenador cada vez que se ejecuta el programa. En el programa, Pelé chutará el balón. Si el portero lo para, el balón volverá en la dirección de Pelé. En caso contrario, llegará al final de la escena, lo que simbolizará un gol. Pelé chutará cada vez en una dirección diferente. Ejercicio 9 sesion6-ejercicio09. Construye el script de Pelé de forma que implemente el siguiente comportamiento: 1. inicializar la posición y dirección del objeto 2. decir Allá vamos 3. chutar el balón El objeto Pelé no es responsable del objeto Balón, por lo que tampoco será responsable de determinar la dirección en que se mueva. La posición inicial de Pelé será (190, 0) mirando a la izquierda. Para chutar el balón se moverá 40 pasos en esa dirección. Asegúrate de reducir el tamaño del objeto Pelé para que no sea demasiado grande. gato-chuta-aleatoriamente-1.sb2 1 gato- saca: http://scratch.mit.edu/projects/12042536/ 11

Ejercicio 10 sesion6-ejercicio10. Construye el script del portero de forma que implemente el siguiente comportamiento: 1. inicializar la posición y dirección del objeto Utiliza como portero cualquier imagen de Personas la biblioteca de objetos. La posición inicial del portero será (-200, 0) mirando a la derecha. Asegúrate de reducir el tamaño del objeto Portero para que no sea demasiado grande. Ejercicio 11 sesion6-ejercicio11. Construye el script del balón de forma que implemente el siguiente comportamiento: 1. inicializar la posición y dirección del objeto 2. esperar a que Pelé chute 3. mover en una dirección al azar 4. si toca al Portero 4.1 girar y mover en la dirección de Pelé La posición inicial del balón será (120, -20) mirando a la izquierda. Asegúrate de reducir el tamaño del objeto Balón para que no sea demasiado grande. Comprueba que los tamaños de los 3 objetos son razonables para que se produzca el chut desde sus posiciones iniciales. El balón se moverá utilizando el bloque: en donde la coordenada y será un valor aleatorio. Para generar un valor aleatorio se utiliza el bloque que dará como resultado un número entre los dos valores que pongamos en las ventanas. Para este caso, usaremos valores entre -120 y 120. Cuando termine el movimiento comprobará si está tocando al portero. Si es así, girará y se moverá 100 pasos hacia Pelé. 12

Ejemplo 6: Añadiendo efectos Ahora queremos que cuando Pelé marque un gol su imagen cambie de color haciéndose más brillante y salte, y que el Portero se vuelva más oscuro y se tire al suelo. Y por el contrario, que cuando el Portero pare el tiro, se vuelva más brillante y salte, mientras que Pelé se vuelva más oscuro y se dé la vuelta. Ten en cuenta que el único objeto que sabe si ha sido gol o no es el Balón, así que deberá enviar los mensajes adecuados para que el Portero y Pelé actúen en consecuencia en función del mensaje recibido. Ejercicio 12 sesion6-ejercicio12. Haz los cambios adecuados en el script del Balón para que envíe los mensaje adecuados. Tendrás que cambiar el tipo de instrucción de ejecución condicional, por qué? Ejercicio 13 sesion6-ejercicio13. Escribe los scripts necesarios para Pelé y el Portero para que reciban los mensajes del Balón y salten, se tiren o se den la vuelta según corresponda. Para que Pelé o el Portero salten puedes usar una instrucción de deslizar con un movimiento hacia arriba. Para que se tiren al suelo puedes hacer que miren hacia abajo. Para darse la vuelta haz que miren en dirección contraria. 13

Ejercicio 14 sesion6-ejercicio14. Completa los scripts de Pelé y el Portero que cambien de apariencia. Para cambiar la apariencia de un objeto se utilizan los bloques: en donde en la primera ventana se puede elegir el efecto a cambiar: color, brillantez y en la segunda ventana se indica un número para el cambio, que en general va de 0 a 100, o de -100 a 100, según el efecto. Para la brillantez, utiliza valores entre -100 y 100. Ejercicio 15 Crea un proyecto nuevo y cambia ponle el nombre sesion6-ejercicio15. 1. Construye un programa que muestre el movimiento de un pez inquieto. Inicialmente estará en el centro de la escena, mirando a la derecha. Comenzará moviéndose 10 pasos cada vez, pero está tan inquieto que después de cada tanda de 10 pasos decidirá aleatoriamente si debe cambiar de dirección, girando 180º de derecha a izquierda o de izquierda a derecha. Ejecuta la animación varias veces: El pez tiende a permanecer por el centro de la escena o a irse a los lados? Utiliza como objeto uno de los llamados Fish de la categoría de Animales. Reduce un poco su tamaño para que más adelante puedan caber más peces en la escena. Como se moverá sólo a izquierda o derecha, pulsa el botón que fija el estilo de rotación junto al nombre del objeto: Después de cada movimiento de 10 pasos, el pez elige al azar 1 o 2. Si elige 1, cambia su dirección, si elige 2 no la cambia. 14

Para que sea fácil de seguir la posición del pez, muestra su coordenada x en la escena, haciendo clic en la casilla del reporter de esta coordenada en la paleta de Movimiento. 2. Añade otro pez cuya posición inicial sea 100 pasos a la derecha de la posición inicial del primero. El segundo pez no se moverá. El primer pez dirá Me alegro de verte si le toca el segundo. 3. Añade un tercer pez al lado del que se mueve. Este tercer pez tampoco se moverá. El primer pez dirá Me alegro de verte, P2 o Me alegro de verte, P3 dependiendo de qué pez le toque. Le tocan los dos peces igual de frecuentemente? 4. Modifica el programa anterior de forma que los dos peces fijos digan Soy P2, me alegro de verte o Soy P3, me alegro de verte cuando el pez móvil los toque. El pez móvil no dirá nada. 5. Inicializa los tres peces con diferentes efectos de color. 6. Coloca 2 peces fijos adicionales alrededor del que se mueve: encima y debajo, con sus efectos de color y que saluden al pez móvil cuando les toque. El pez móvil girará ahora en cualquier dirección al azar de -180º a 180º después de cada movimiento. Recuerda cambiar su estilo de rotación para que pueda rotar en cualquier dirección. 15

Ejercicio 16 Las flores del mismo color quieren ser amigas y tocarse. La escena empieza con 3 pares de flores, cada par de un mismo color: rojo, amarillo y violeta. Coloca un botón Start en la escena. Puedes encontrar los objetos ya definidos en el archivo disfraces-flores 1. Una vez dentro del proyecto, pulsa en nombre sesion6-ejercicio16. para tener una copia del proyecto, y ponle el En los siguientes apartados, los seis objetos Flor ejecutarán scripts similares, por lo que podrás copiar el script de uno a otro, y luego hacerle las modificaciones necesarias. 1. Las flores se colocan inicialmente en posiciones al azar a lo largo del eje x de -220 a 220, mirando a la derecha. Cuando se pulse el botón Start, se moverán a lo largo del eje x, rebotando si llegan al borde de la escena, hasta que cada flor toque a otra flor de su color. Usa la condición de la paleta de Sensores, eligiendo el mismo color en las dos ventanas. 2. Modifica el programa de forma que la dirección inicial de cada flor sea elegida de forma aleatoria entre 90º o -90º (sólo esas dos direcciones). 3. Modifica el programa de forma que las flores elijan su dirección inicial en el rango entre 180º y -180º. 4. Modifica el programa de forma que la coordenada y de la posición inicial de cada flor sea un número aleatorio entre -150 y 150. 5. Modifica el programa de forma que se ejecute indefinidamente. Cuando una flor de un color se encuentre con la otra flor de su mismo color, ambas dirán Te encontré! durante 2 segundos, y después ambas reinicializarán su posición y dirección a nuevos valores aleatorios. 1 disfraces- flores: http://scratch.mit.edu/projects/12110839/ 16

Ejercicio 17 Vuelve a tu último proyecto del Pacman (sesion6-ejercicio8). Crea una copia de tu proyecto (con Archivo -> Guarda una copia) y cambia el nombre a sesion6-ejercicio17. Amplía el juego del Pacman: 1. Añade al laberinto puntos. Crea un objeto punto con el editor de gráficos. Haz que el objeto punto sea más pequeño que el plátano. El comportamiento del punto debe ser igual que el del plátano: desaparece cuando lo toca Pacman, y reaparece cuando se reinicia el juego. Duplica varias veces el objeto punto para llenar el laberinto de puntos, junto con 3 o 4 plátanos. 2. Añade un marcador al juego. Asigna 5 tantos a cada punto que se come Pacman, y 100 puntos a los plátanos. Haz que se muestre el marcador con un reporter. Al reiniciar el juego el marcador debe volver a cero. 3. Añade un registro de record al juego: al terminar el juego, si el tanteo actual es superior al record, se debe actualizar el record. Observa que el record no debe reiniciarse al comenzar el juego para mantener su valor. Si quieres que el marcador se conserve para siempre activa la casilla de guardar en la nube cuando crees la variable. 4. Cuando Pacman se coma todos los objetos, el juego debe terminar mostrando un mensaje informativo. 5. Introduce fantasmitas que se muevan al azar y si tocan a Pacman reinician el juego. 6. Cuando Pacman se coma un plátano, durante 5 segundos podrá comerse también a los fantasmas, valiendo cada fantasma 1000 puntos. Los fantasmas cambiarán de apariencia durante ese periodo. 17