¿Quién no se ha jugado alguna vez al juego del gato que caza al ratón? O al del policía y el caco, o al pilla-pilla… pues todo esto es muy sencillo de hacer en Scratch, tanto como añadir unos pocos puñados de bloques. Es nuestro nuevo Proyecto Scratch de los viernes, una idea que como siempre viene acompañada de interesantes sugerencias de ampliación para que continúes aprendiendo a programar. ¿Te animas? ¡Pues sigue leyendo!

Un gato que caza… un ratón, claro

Scratch ObjetosA priori el juego es muy sencillo. Necesitaremos al menos un objeto, un gato que se moverá en la dirección del ratón del ordenador. Para darle un poco más de "realismo" podemos incorporar un segundo objeto que esté siempre colocado donde tengamos el puntero del ratón.
Con esta premisa, tendremos que añadirles a nuestros objetos los siguientes movimientos:

  • Gato: siempre apuntará en la dirección del puntero del ratón, y se moverá un determinado número de pasos.
  • Ratón: siempre apuntará en la dirección del puntero del ratón, e irá a donde esté ese puntero. Esto podría hacerse simplemente con ir a puntero del ratón, pero si le añadimos la otra pieza conseguiremos darle el efecto de que también gire.

Dándole movimiento

Lo primero que tenemos que hacer es, como (casi) siempre, asignar posiciones iniciales a los objetos. Esto es importante sobre todo para el gato, ya que el ratón se moverá siempre al lugar donde tengamos nuestro puntero del ratón.
Es importante que aquí estudies las coordenadas del escenario de Scratch para asignarle una posición inicial. En mi caso he puesto X: -100; Y: 0, pero podría ser cualquier otra. Incluso una al azar, de modo que el gato fuese apareciendo en diferentes lugares del escenario cada vez que ejecutas el proyecto. En este segundo caso puedes añadir una "cuenta atrás" para que empiece a moverse, ya que podría dar la casualidad de que apareciese en el mismo lugar que el ratón.
Una vez posicionados los objetos hay que darles movimiento: la forma fácil es crear sendos bucles por siempre que ejecuten los movimientos que queramos: apuntar en dirección y moverse, según sea necesario. Ten en cuenta la diferencia entre un objeto y otro: el gato se mueve paso a paso, mientras que el ratón se mueve 'instantáneamente' a donde está el puntero del ratón. Así, el código de la izquierda correspondería al gato, mientras que el de la derecha es el del ratón.
Scratch Movimientos

¿Y si el gato pilla al ratón?

Por ahora este código no está añadido, pero es pan comido incorporarlo. Lo que queremos es comprobar que si el gato 'toca' al ratón, entonces… sucederá lo que queramos. Por ejemplo, que lance un mensaje y que lo 'engulla'.
Dentro de nuestro bucle de movimiento tenemos que añadir la condición de que si tocando ratón, entonces… se lo come, lanza un mensaje y termina de moverse:
Scratch Tocando Objeto
Esta es una opción sencilla de código, aunque hay una versión avanzada que es prácticamente similar. Se trata de cambiar el por siempre por un repetir hasta que, de forma que no sería necesario ni el si… entonces, ni el detener este programa. El código resultante sería el siguiente:
Scratch Gato
Por último, es posible que cuando tu gato haya cazado al ratón, éste último no se esconda. ¡Recuerda añadir el código correspondiente al mensaje esconder_ratón!

Hasta el infinito… y más allá

Un primer punto de partida para un juego en el que podemos crear mucho, mucho más, y con el que nuestros hijos o alumnos podrán estar durante horas entretenidos. A continuación te proponemos unas cuantas ideas con las que puedes continuar mejorando y progresando en este proyecto:

  • Lo primero podría ser hacer que el gato vaya cada vez más rápido, a medida que pasa el tiempo. Esto se puede hacer fácilmente con una variable.
  • También podemos crear otra variable que capture el tiempo que tarda el ratón en ser cazado. ¡E incluso un ranking de los mejores tiempos conseguidos!
  • Puedes incluso incorporar objetos que aparezcan al azar sobre el escenario, y que den poderes especiales: que ralenticen al gato, que den puntos o… ¡lo que tú quieras!
  • ¿Un gato y un ratón? ¿Y si añades los dos personajes que tú quieras? Dos coches, o un policía y un ladrón, o dos animales, o… a ti libre elección. Incluso, puedes hacer un selector de personaje inicial para elegir entre una variedad.

El Proyecto Scratch de los viernes es la sección en la que, cada primer viernes de mes, proponemos una idea de proyecto y damos algunas pistas para llevarlo a cabo. Hemos hablado de movimientos, figuras geométricas, historias, juegos de preguntas y respuestas, relojes, videojuegos… ¿Quieres saber más? Échale un vistazo a las ideas recopiladas en este enlace o al estudio EDUCACIÓN 3.0 en la comunidad de Scratch donde estamos incluyendo nuestros proyectos de los Viernes. Y por supuesto, ¡cualquier propuesta o sugerencia que tengas será bienvenida!

Sobre el autor
Avatar De Pablo Espeso

Pablo Espeso

Ingeniero Informático, coordinador del Club de Jóvenes Programadores de la Universidad de Valladolid (CJP @ UVa) y apasionado por la docencia de las nuevas tecnologías, de la informática y, en particular, de la programación.