¿Quién quiere ser millonario?

2 de diciembre de 2022

Durante estas últimas semanas hemos comenzado a trabajar en equipo realizando un programa para jugar al concurso de la tele ¿Quién quiere ser millonario? en nuestro querido Scratch. Para los que no lo conocen, es un programa en el que se van haciendo preguntas basadas en opciones (es decir, preguntas donde hay que responder A, B o C) y sólo una es correcta. Si se aciertan todas (por ejemplo, 10), obtendremos el premio máximo: ¡un millón de chuches! ¡Ñam, ñam!

Enunciado

Cada equipo va a estar formado por 4-5 programadores/as, donde uno/a de ellos/as será el/la líder o coordinador/a, que se encargará de componer el programa final. El resto de miembros del equipo desarrollarán una parte del programa. Cada estudiante sólo programará un personaje, para simplificar el trabajo.

La mecánica del juego será la siguiente:

  • Vamos a tener una serie de temáticas de preguntas, por ejemplo, las siguientes:

  1. Social science: provincias, comunidades, países, capitales, etc.

  2. Natural science: planetas, animales, alimentos, etc.

  3. Actualidad: grupos musicales, deportes o cualquier cosa que se ocurra.

  • Tendremos un personaje principal, tipo presentador (Carlos Sobera), que se encargará de ir llevando el programa y la puntuación.

  • Tendremos tantos personajes como materias elegidas, que se encargarán de hacer las preguntas de forma aleatoria (es decir, no siempre la misma ni en el mismo orden).

  • El presentador, irá eligiendo materias al azar y, en función de la materia elegida, cederá el control a otro personaje que hará la pregunta.

  • El personaje que haga la pregunta esperará por la respuesta y sumará un error o un fallo en función de si la respuesta es o no correcta. Aquí se puede tirar de imaginación y que cada uno le dé su toque personal. Por ejemplo: cuando un personaje pregunte, puede moverse, brillar, hacerse más grande, más pequeño... ¡Lo que a cada uno se le ocurra para que quede chulo!

  • Una vez que el presentador haya hecho una serie de preguntas (por ejemplo, 10), dirá el resultado.

En cuanto al formato de las preguntas, cada una ofrecerá tres respuestas y para seleccionar una de ellas habrá que introducir las letras A, B o C. Ejemplo de pregunta de natural science:

"¿Cuál es el planeta más cercano al Sol? A: Neptuno. B: Mercurio. C: Saturno"

Si como respuesta se introduce la letra B, la pregunta será correcta. En otro caso, será errónea.

¡A programar y pasárselo bien! ¡¿Quién quiere ser millonario?!

Resolución

Puesto que es un ejercicio bastante complejo, vamos a ir explicando su resolución por partes. De momento, por falta de tiempo (nuestros amigos los robots nos esperan), tan sólo nos ha dado tiempo a terminar la primera parte, que pasamos a explicar a continuación.

Parte 1: Programa "preguntón" sobre una materia

Esta primera parte consiste en que un personaje sea capaz de hacer preguntas aleatorias de entre una colección de preguntas. Pero, ¿dónde nos guardamos todas esas preguntas? Pues para ello hay unas estructuras que nos resultan apropiadas: las listas.

Las listas son un tipo de variables que pueden almacenar más de un valor, a diferencia de las variables normales que hemos venido utilizando ¿Y qué podemos hacer con las listas? Entre otras cosas, Scratch permite insertar elementos en ellas, consultar el número de elementos que hay almacenados y consultar un elemento determinado en base a lo que llamamos "índice", que será un número que nos indicará si queremos acceder a la pregunta número 1, número 2, etc.

Pues con un par de listas (una para almacenar las preguntas y otra para almacenar las respuestas correctas) y un poco de ingenio, podemos hacer nuestro programa "preguntón". Puesto que, como hemos dicho antes, vamos a trabajar en equipo, y cada miembro del equipo se va a encargar de una determinada materia (matemáticas, lengua, ciencias, etc.), recordad que al crear la variable de tipo lista se debe de marcar la opción de "Sólo para este objeto", lo que nos permitirá que haya dos personajes distintos que hagan uso de la misma colección "lista preguntas" y "lista respuestas" (sin que haya ningún problema, esto es, sin que haya colisiones).

Una vez creadas y rellenadas las listas con las preguntas y las respuestas correctas, pasamos a desarrollar el programa que, cada vez que se pulse la bandera verde, haga una pregunta aleatoria y espere por la respuesta, para después decirnos si la respuesta ha sido correcta o errónea. El programa queda así:

Recordad que hay que hacer uso de una variable auxiliar a la que llamamos "indice pregunta", que nos permitirá coger una pregunta aleatoria y su respuesta correcta asociada, ya que de lo contrario, si llamáramos dos veces al operador "número aleatorio", el programa no funcionaría correctamente.

De momento, dejamos aparcado el programa por el momento, pero ¡volveremos!

Juego funcionando

Si quieres ver el proyecto completo de Scratch para analizar el código o probarlo, pulsa aquí. Recuerda que aún está en construcción :-)