jump to navigation

Entrega juego Junio 3, 2008

Posted by beceoca in Posts normales.
trackback

 

El pasado jueves entregamos el juego terminado. Vamos a contar un poco como lo hemos hecho y los problemas que nos hemos ido encontrando a lo largo de su programación.

 

Lo primero es que nuestro juego es el Brain Training. Partiendo de esta idea hemos creado un test con 15 preguntas en las que recorremos todos los aspectos para entrenar el todas las partes del cerebro.

Con las respuestas correctas hacemos un cálculo aproximado de la edad mental.

Para responder a cada pregunta disponemos, dependiendo del nivel de dificultad elegido de 17 o 13 segundos según hayamos escogido entre fácil y difícil respectivamente.

 

Para empezar el juego no elegimos la implementación de la algoritmia como se aconseja, ya que en nuestro caso las acciones a realizar dependen directamente de los botones que se pulsen y por tanto comenzamos por la parte de Swing.

 

Los principales problemas que nos encontramos a lo largo del juego se pueden resumir en estos cuantos:

- Cuántas clases crear. Esto nos llevó más de un quebradero de cabeza, tanto que hicimos que las clases heredaran de JFrame y así poder usar la clase entera como una ventana, y por lo tanto creamos una clase por ventana (en total 7). También podríamos haberlo echo de forma que en una sola ventana y mediante el método removeAll() quitáramos o pusiéramos componentes dependiendo de la parte del juego en que nos encontráramos, pero lo descartamos por falta de tiempo (al tener todo echo de la otra forma).

- Creación de una algoritmia capaz de decidir si la respuesta elegida es la correcta o no. Esto lo solucionamos creando un array de respuestas, ya que la pregunta y las posibles cuatro respuestas están contenidas en una sola imagen que no se puede modificar. Por lo tanto solo teníamos que comparar la respuesta pulsada (de la imagen i) con la posición i en el array de respuestas. Pensamos en realizar las respuestas de forma aleatoria, pero lo descartamos al decidir que las imágenes aparecerían en orden de dificultad creciente.

- Otro problema fue la forma de manejar el  timer, ya que no teníamos mayor experiencia con él que la vista en la teoría y en las prácticas. Esto lo solucionamos a última hora, y vimos que nuestro error no era otro que el de no crear el manejador para el timer que estábamos poniendo en marcha. Finalmente y tras mucho darle vueltas conseguimos controlarlo de forma que realizara la cuenta parcial de tiempo, es decir, cada 1 segundo.

- Otra de las cosas que nos quebraron la cabeza a la hora de programar el juego fueron los errores que el usuario podría cometer al introducir su nombre y su edad. En el nombre únicamente comprobamos que pongas al menos una letra o un número para que no se quede vacío, pero en la edad y para evitar problemas, decidimos controlar que lo único que se introdujese fueran números del 1 al 99. Par a informar de estos errores creamos varios JOptionPane con el error que hayas cometido.

- El ultimo problema que el juego nos dio fue el de crear un reproductor JMF que en un momento dado de la aplicación nos pusiera en marcha un sonido. Con el reproductor de la teoría no teníamos más que usar una parte de su código para conseguir lo que nos hacía falta.

Comentarios»

1. Jose Jesus - Junio 3, 2008

Un muy buen análisis, si señores :-) Por lo demás, lo importante no es empezar por la lógica o por la interfaz de usuario: lo importante es que ambas cosas se mantengan con cierto grado de independencia, para, llegado el caso, poder modificar uno sin tener que tocar el otro ;-)