Android. Juego del Ahorcado (XV). Fin de juego. Monigote completo.

android gingerbreadEn este post vamos a modificar lo empezado en el anterior, como control de fin de juego. En el anterior, presentábamos un mensaje cuando acertábamos la palabra oculta. En este, presentaremos un mensaje cuando no la acertamos y se completa el monigote.

Veamos los cambios.

Clase monigote.java.

  • Se ha añadido el método getError_pizquierda(), para poder consultarlo desde el objeto de la clase Escenario.

Clase juego.java.

En esta clase se han efectuado cambios que afectan a lo descrito en el post anterior, debido al funcionamiento interno de invalidate(). Si nos acordamos, invalidate() fuerza el repintado del juego, controlado por la clase Escenario. El tema es que invalidate() funciona de manera concurrente, por lo que se daban casos en los que se acababa el juego, pero no salía el mensaje correspondiente. Se ha optado por cambiar la lógica del código de forma que las comprobaciones de fin de juego se hagan forzosamente cuando haya acabado el repintado, así que se han trasladado como líneas de código al final del método onDraw() de la clase Escenario.java.

Este cambio ha supuesto modificar la visibilidad de los métodos palabra_acertada() y dialogo_fin_juego() de la clase juego.java, cambiándolos de private a public.

Además se ha añadido otro método, de nombre monigote_entero() y con visibilidad public, cuya finalidad es ayudarnos a saber si el monigote se ha completado, como parte del proceso de comprobación. Queda de la siguiente forma:

public boolean monigote_entero()
{
return escenario.getPalabra_juego().getLetras_falladas().length() >= escenario.getMonigote().getError_pizquierda();
}

Clase Escenario.java.

  • Se ha añadido el método getMonigote():

public Monigote getMonigote() {
return monigote;
}

  • Se ha incluido, como ya se ha explicado antes, la lógica del control de fin de juego, al final de onDraw(), quedando así:

if(juego.palabra_acertada())
{
juego.dialogo_fin_juego(true);

}
else
{

// Control del fin de juego cuando se completa el monigote

if(juego.monigote_entero())
{
juego.dialogo_fin_juego(false);
}
}

Ahora, cuando completamos el monigote, nos sale el siguiente mensaje:

Si quieres, puedes descargar los fuentes de este desarrollo, hasta este nivel, haciendo click aquí.

¡Hasta el próximo post!

Acerca de Isildur Fuentes

Apasionado de las buenas historias y aikidoka de la tierra.

Publicado el octubre 10, 2011 en Android, EDIB, Programación y etiquetado en , , , , , , . Guarda el enlace permanente. 1 comentario.

  1. HOLA HE ANDADO COMO LOCO BUSCANDO LA SOLUCION A UN ERROR QUE DA EN EL POST 5 POR FA ALGUIEN QUE ME DIGA EL ERROR ES EL SIGUIENTE:
    AL EJECUTARLO APARECE
    ! Sorry
    The Application Ahorcado
    (Process misejemplos.
    ahorcado) has stopped
    unexpectedly. Please try again.

A %d blogueros les gusta esto: