Animación Título

Clase 5


En el Scratch que diseñamos en la clase anterior, vimos que el juego terminaba cuando la pelota tocaba 10 veces al gato.

El tema es que aquí hay dos fallas en el diseño del juego, una a favor de la pelota y otra a favor del gatito, veamos:

1. Situación favorable a la pelota:
La pelota tiene todo el tiempo del mundo para tocar 10 veces al gato. Esto lo determina la orden "por siempre" que se ejecuta luego de presionar la bandera verde.

2. Situación favorable al gatito:
El gato puede cometer una infracción desleal que le permitiría ganar siempre. ¿Cómo? Situándose en una esquina neutral, en la cual la pelota nunca lo toque y quedándose quietito. Además, si se desplaza con el mouse, la pelota no lo atrapa nunca.

Veamos entonces como penalizar ambas situaciones para que aquí no haya "gato encerrado":

Penalización de la situación 1
Penalizaremos a la pelota si no puede tocar al gatito 10 veces en menos de 25 segundos.
Si el gato resiste 25 segundos sin ser tocado 10 veces, ganará el juego. En cambio si la pelota toca al gato 10 veces en menos de ese tiempo, ganará la pelota.
Para ello usaremos las siguientes instrucciones dentro del objeto PELOTA:


  • Reiniciar cronómetro: pone el cronómetro en cero. Será la primera acción luego de pulsar la bandera verde. Todos los juegos arrancan en cero.  La imagen a continuación es una programación del escenario:

NOTA IMPORTANTE: COMO EL CRONOMETRO Y EL CONTADOR DE TOQUES SON ACCIONES INDEPENDIENTES DE LA PELOTA O EL GATITO, SE PONEN COMO PROGRAMACION PROPIA DEL ESCENARIO. Para ello, la única consideración que debe ser tenida en cuenta es que las variables, por ejemplo "contador de toques" deben ser declaradas como "válidas para todos los objetos" al momento de ser creadas.


  • Cronómetro: Es una variable que lleva el tiempo de juego. En nuestro caso, el límite a considerar valdrá 25 segundos.

Este último valor deberá estar siendo chequeado dentro del ciclo "por siempre" preguntando si el cronómetro vale más o menos que 25. Si vale más que 25, el juego se detiene y debe ser declarado ganador el gato. Si vale menos que cien, no se toma ninguna acción significativa, se debe dejar que el juego continúe hasta que se cumplan los 25 segundos, o hasta que la pelota toque 10 veces al gato.


Penalización de la situación 2.
Penalizaremos al gatito si se esconde en los bordes, si se escapa del tablero, o si se mueve con el mouse, en todos los casos forzándolo a moverse al centro del tablero.
Para ello usaremos las siguientes instrucciones dentro del objeto GATITO:


con estos tres sensores (familias de controles de color celeste) prácticamente impedimos que el gato se quede en un rincón o que salga del tablero o que se maneje por mouse: solo lo podrá hacer con flechas de dirección.
La orden "ir a X: -14 Y: -4" corresponde más o menos al centro del tablero. La idea es que cada vez que el jugador intente cometer alguna de las 3 deslealtades, el gato responda moviéndose al centro del tablero para que esté mas alcanzable por la pelota.

Actividades para hacer en clase:

Abrir el juego desarrollado en la clase anterior, y modificarlo según las siguientes consignas:
- Agregarle en el Escenario: a) un fondo; b) la programación descripta arriba
- Renombrar el Objeto1 como gatito; y el Objeto 2 como pelota. ¿Qué pasa con las líneas de programación que hacían mención a Objeto1 y a Objeto2 previamente?
- Agregar en la programación del gatito y la pelota las penalizaciones correspondientes.
- La pelota puede, según el ángulo inicial de rebote, adquirir un comportamiento previsible, con lo cual nuevamente, el gato si se oculta en un rincón inaccesible ganará seguro. Mejorar esta situación aplicando en el movimiento de pasos de la pelota, la orden 

- Una vez finalizado, guardar el archivo con los nombres de los alumnos, y compartir el proyecto en scratch.mit.edu, con el usuario del taller.(tallervje)

No hay comentarios:

Publicar un comentario