jueves, 21 de enero de 2016

Trivial con App Inventor 2 - Juego de preguntas y respuestas

Vamos a hacer una aplicación que nos pregunte por las capitales de varios países. Deberemos elegir la respuesta correcta de una lista que nos ofrecerá la aplicación. Estos son los componentes que debe tener:
  • Un botón para comenzar

  • Dos etiquetas (label) para el país: una que diga Di cuál es la capital de, y seguidamente otra para poner el país, que inicialmente dejaremos vacía.

  • Un selector de lista (list picker), en el que aparecerán todas las respuestas posibles.

  • Dos etiquetas: una en la que ponga Aciertos, y otra en la que ponga el número de aciertos, que inicialmente será 0.

  • Un notificador, para poder mostrar un mensaje cuando se ha acertado, otro cuando se ha fallado, y otro cuando el juego ha finalizado.




PROGRAMACIÓN:

1. Definir las VARIABLES:
  • Una lista que contendrá cuatro países por los que vamos a preguntar la capital

  • Otra lista que deberá contener  las capitales de los cuatro países anteriores, y en el mismo orden.

  • Un contador, que nos indicará cuál de los cuatro países estamos preguntando. Lo iniciaremos a 1.

  • La variable aciertos, que llevará la cuenta de las veces que hemos acertado. La iniciaremos a 0.


2. PROCEDIMIENTO para preguntar (al que podemos llamar preguntar):
  • Deberá tener un bloque para poner los elementos del selector de lista igual a los elementos de la lista de las capitales

  • Deberá asimismo tener un bloque para poner el texto de la etiqueta del país. Deberá indicar el país de la lista de países correspondiente al índice marcado por el contador.

3. El bloque DESPUÉS DE SELECCIONAR del selector de lista

  • Debe incluir un bloque SI ENTONCES - SI NO, en el que, tras comprobar si la respuesta es correcta hagamos:

  • Las notificaciones se hacen con el siguiente bloque del notificador:

  • Después de ésto debemos aumentar el contador en 1

  • Y, por último, hemos de comprobar si el contador vale más de 4, en cuyo caso el juego ha finalizado. Si no es así, el juego debe continuar y debemos llamar al procedimiento preguntar:
 4. Por último hemos de programar el botón COMENZAR:

 Al hacer clic en comenzar deberemos:

  • Poner el contador a 1

  • Poner los aciertos a 0

  • Poner el texto de la etiqueta del número de aciertos al valor de aciertos

  • Llamar al procedimiento preguntar.


5. Depuración de errores:

Tal y como está programada, la aplicación da estos fallos:

  • Antes apretar el botón comenzar para iniciar el juego puede desplegarse el selector de lista, aunque no tenga ningún elemento.

  • Cuando se ha terminado el juego, el selector de lista puede seguir desplegándose, y en él aparecen las capitales.
Corrige estos errores utilizando la propiedad habilitado (enabled) del selector de lista. Deberá estar en falso al abrir la aplicación. Al apretar el botón comenzar deberá ponerse en verdadero, y cuando el juego finalice (porque el contador es mayor que 4) debe volver a ponerse en falso.

6. Mejoras:


1.-

Introduce un componente sonido (se encuentra en la pestaña medios), y utilízalo para que el teléfono vibre si la respuesta dada no es correcta. Para ello deberás utilizar el bloque llamar al sonido vibrar (call sound vibrate), y decir durante cuántos milisegundos quieres que lo haga.

2.-

Tal y como se ha planteado, el juego es muy fácil, porque sabemos que al primer país que nos pregunta le corresponde la primera capital de la lista, al segundo la segunda, y así sucesivamente. Programa el juego de manera que las capitales no aparezcan en el mismo orden que los países.

Una manera de hacerlo es desordenar la lista de las capitales, y hacer una nueva lista, a la que podemos llamar correctas, por ejemplo, en el que las capitales estén ordenadas. La primera lista se utilizará para rellenar el selector de lista, y la segunda para comprobar si la respuesta elegida es la correcta.

3.-

En este juego las respuestas que aparecen en el selector son las mismas para todas las preguntas. Vamos a hacer una nueva aplicación en la que para cada pregunta aparezcan diferentes opciones de respuesta. La programación es muy parecida, siendo éstas las principales diferencias:

  • La lista de respuestas será una lista de listas. Cada elemento de la lista contendrá todas las posibles respuestas a una pregunta, es decir, otra lista:

  • Igual que en la mejora anterior, será necesario hacer una lista que contendrá únicamente las respuestas correctas, y que servirá para comprobar si la respuesta elegida por el jugador es o no correcta.
4.-

¿Es realmente necesaria la variable aciertos? Una variable no es más que un "almacén" donde guardamos algo. El número de aciertos podríamos guardarlo directamente en el texto de la etiqueta "número de aciertos", y así ahorraríamos algunos bloques.

No hay comentarios:

Publicar un comentario