lunes, 8 de febrero de 2016

Trivial con App Inventor 5 - Tablero con dos fichas

En este ejercicio vamos a hacer un tablero con dos fichas (para dos jugadores), de manera que, cuando un jugador tira, se le hace una pregunta. Si la acierta, vuelve a tirar. Si no, pasa el turno al otro jugador.

1- Componentes:

  • Un tablero en su correspondiente lienzo, y dos pelotas para las fichas, una de cada color (en este caso negra y roja). Las posiciones iniciales de las fichas serán x=2 e y=2 para la negra, y x=5 e y=5 para la roja, de manera que la que está encima no cubra por completo a la otra.

  • Un botón para el dado

  • Etiquetas para el dado: Una que ponga "dado" y otra que diga lo que ha salido en la tirada del dado.

  • Etiquetas para casilla: Una que diga "casilla: ", otra que indique el número de casilla en la que está la ficha negra, y otra que indique la casilla en la que está la ficha roja.

  • Etiquetas para aciertos: Una que diga "aciertos: ", otra que indique el número de aciertos del jugador de la ficha negra, y otra que diga los aciertos del jugador de la ficha roja.

  • Una lista de selección para las respuestas, que de inicio estará deshabilitado.

  • Un botón reiniciar.


2- Variables

  • Una variable para el dado, que iniciamos a 0

  • Las variables para las posiciones x e y de las distintas casillas

  • Variables para las preguntas: el contador, que se inicia a 1, la lista de preguntas, la lista de respuestas, y la lista de respuestas correctas, igual que en el ejercicio anterior.

  • Variables de casilla: una (casillaNegra) para guardar el valor de la casilla de la ficha negra y otra (casillaRoja) para el de la casilla de la ficha roja.

  • Los números de aciertos los guardaremos directamente en las correspondientes etiquetas, sin hacer una variable específica para ellos. 

  • También hace falta una variable para saber qué ficha está jugando, la negra o la roja. Debe saberlo tanto el usuario como la aplicación. Una forma de hacer ambas cosas a la vez es guardar esta variable en el color de fondo del botón dado, que será negro si está jugando la ficha negra, y rojo si lo hace la roja. Pondremos de inicio el color de fondo del botón dado en negro.
3- Procedimientos

  • Procedimiento preguntar, igual que en las aplicaciones anteriores.


  • Harán falta, además, otros dos procedimientos: uno para mover la ficha negra, y otro para mover la ficha roja (moverNegra y moverRoja):


4- Programación del botón dado

El botón dado se programa igual que en las aplicaciones anteriores, pero en este caso hay que tener en cuenta cuál de las dos fichas se está moviendo, para llamar al procedimiento correspondiente. Recuerda que es el color de fondo del propio botón el que nos indica qué ficha se mueve:


5- Programación de la lista de selección

En la lista de selección haremos lo siguiente:
  1. Comprobamos qué ficha está jugando (según el color de fondo del botón dado).

  2. Comprobamos si la respuesta es correcta, y si lo es, aumentamos los aciertos de ese color. Si no lo es, cambiamos el color de fondo del botón dado para que juegue la otra ficha.

  3. Aumentamos el contador, y en caso de que el valor del contador sea mayor que el número de preguntas, lo ponemos a 1.

  4. Deshabilitamos la lista de selección y habilitamos el dado.

6- Programación del botón de reiniciar

El botón reiniciar debe:

  • Poner las variables contador, casillaNegra y casillaRoja a sus valores iniciales (1).

  • Poner los aciertos negros y rojos a 0

  • Poner el dado a 0

  • Situar las fichas en sus coordenadas iniciales, (2,2) y (5,5)

  • Habilitar el botón dado

  • Poner el color de fondo del botón dado en negro 

7- Mejoras

  • Tal y como está la aplicación, cuando ambas casillas están en la misma casilla, la negra cubre por completo a la roja. Podemos evitar ésto haciendo que la roja sobresalga un poco, por ejemplo, aumentando sus valores de X e Y en 3 píxeles:

  • Aún así, la ficha negra siempre queda por encima de la roja cuando están en la misma casilla. Podemos hacer que quede por encima la ficha que está jugando en ese momento modificando sus valores de Z:

    • En el procedimiento moverRoja haremos fichaRoja (Z) = 2, y fichaNegra (Z) = 1

    • En el procedimiento moverNegra haremos fichaNegra (Z) = 2 y fichaRoja (Z) = 1

No hay comentarios:

Publicar un comentario