Seguro que te suenan esas máquinas arcade llamadas Whac-A-Mole, habituales en Estados Unidos. Su funcionamiento es fácil: hay una serie de casillas en las que unos pequeños esconden unos topos que aparecen y desaparecen automáticamente. Hoy vamos a plantear un juego en Scratch con esta filosofía.
Un proyecto sencillo y entretenido en el que los chavales aprenderán sincronización y tiempos, sobre todo lo demás; pero también coordenadas y posición en el plano. Nuestro proyecto Scratch de los viernes es un Whac-A-Mole, un juego en el que deberás 'cazar' a estos monstruitos antes de que desaparezcan.

Organiza y coloca tus ¿topos?

Antes de plantear este juego en Scratch es necesario, como en tantos otros proyectos, plantear el escenario y las posiciones donde van a aparecer y desaparecer los objetos. Como siempre esto puede hacerse de múltiples formas; en nuestro caso, vamos a implementar tres posiciones que serán equidistantes entre si. Hacerlo con más topos es una tarea sencilla.
El escenario de Scratch se mueve en unas coordenadas X: -240, 240; Y: -180, 180 (existe un fondo de Scratch predefinido que puede ser de ayuda a tus chavales a entender esto). Nosotros pondremos los tres muñecos en una línea horizontal, en el centro del escenario; es decir, la coordenada Y será 0, mientras que la coordenada X variará. El primer ejercicio que debemos realizar es determinar las coordenadas a utilizar para que los tres elementos sean equidistantes entre si, teniendo en cuenta la longitud del escenario.
Scratch Unicorn Position
Unas pocas cuentas después tendremos como resultado que, sobre el eje X, los objetos deben colocarse en las coordenadas -120, 0 y 120, respectivamente.
¿Y qué objetos ponemos? Aquí podemos dar libertad a cada uno. Pueden ser topos como en el juego original, o podemos dar rienda suelta a la imaginación para colocar cualquier otro dibujo que queramos. En mi caso he elegido unicornios, concretamente una de las imágenes que hay en esta página web. Os recordamos los trucos avanzados para buscar imágenes en Internet, y que serán de gran ayuda para dar con el mejor resultado.
Dicho esto, como nosotros vamos a colocar tres "moles", necesitaremos tres objetos. Cada uno de ellos tendrá sus respectivas coordenadas y un funcionamiento muy parecido, el cual definiremos más adelante.

Si lo "golpeas", ganas puntos

En el juego original los topos aparecen y desaparecen en ciertos intervalos de tiempo. Si nosotros les golpeamos cuando están fuera, ganamos puntos.
Scratch Whac-A-MoleEn Scratch esto se traduce a un código muy sencillo: por siempre, deberemos esconder el objeto, esperar un determinado tiempo (idealmente un número al azar de segundos), mostrar, y esperar de nuevo otro número al azar de segundos hasta que vuelva a desaparecer. Con este código nuestros objetos se mostrarán y esconderán infinitamente, algo que nos servirá como punto de partida.
Además, también es necesario añadir el código del "impacto". Aunque esto puede hacerse de muchas formas, lo más sencillo es que cuando hagamos click en uno de los objetos se sume u punto. Tendremos que crear una variable, que se fije como cero al pulsar la bandera verde y también añadir, en cada objeto, que cuando hagamos click sobre él se añada un punto a la variable (cambiar 'variable' por 1).

Hasta el infinito... y más allá

Este proyecto base es una idea muy sencilla y aunque ya es 'jugable', no deja de ser un punto de partida sobre el que podemos trabajar para mejorarlo muy notablemente. Como es habitual en "El proyecto Scratch de los viernes", os lanzamos unas cuantas propuestas con las que podéis mejorar el juego:

  • En el Whac-A-Mole manejamos un martillo: ¿sabrías cómo añadir un objeto que siguiese al ratón, y que cuando hagamos click emule el comportamiento de un martillo?
  • Es posible que ya hayas pensado en todas las animaciones que puedes añadir: a los objetos, la del propio martillo, que desaparezcan, utilizar GIFs animados...
  • Topo De Tierra @ PixabayNuestro proyecto base es infinito, pero los juegos generalmente tienen un fin: puedes limitarlo por tiempo, por ejemplo que el objetivo sea conseguir la mejor puntuación en 30 segundos.
  • Y claro, si hablamos de puntuaciones entramos en la posibilidad de hacer rankings, guardar los récords y el nombre de los jugadores...
  • Evidentemente 3 objetos son pocos. ¿Podrías añadir 9? En una cuadrícula equidistante, claro (ahí está la clave).
  • ¿Y si en vez de aparecer siempre en el mismo sitio, hacemos que los objetos aparezcan en lugares aleatorios del escenario?
  • Por último, los objetos no desaparecen cuando los golpeamos: ¿cómo podrías hacer para que se escondiesen?

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!

Imagen: Flickr de Sam Howzit

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.