En este ejercicio se va a implementar un juego en el que el usuario tenga que
adivinar un número que conoce el programa. El código correspondiente a cada clase
que se implemente deberá estar en un fichero java separado y que tenga el mismo
nombre que la clase.
Clase Juego
• Añadirle un método abstracto (void) Juega que no tome parámetros y que tendrán que
implementar las clases derivadas.
• La clase Juego ahora pasa a ser una clase abstracta por lo que ya no se
podrán crear instancias en la misma.
• La función main ya no estará dentro de esta clase.
Crear los métodos:
Juega (Inicia el juego==start nPartida=1)
QuitaVida (Vida--, si Vida=0 entonces GameOver)
ActualizaRecord (puntuacionMasAlta=nPartida*puntos)
ReiniciaPartida (nPartida=0; vidas=3, invocar random)
Datos
Vida
puntuacionMasAlta
puntos=100 Cada partida equivale a 100 puntos
nPartida=0
Clase JuegoAdivinaNumero
• Deriva de la clase Juego.
• Tiene un constructor que toma dos parámetros de tipo entero. El primero es el número de vidas
que, a su vez, se lo pasará al constructor de la clase base. El segundo parámetro es un número a
adivinar entre 0 y 10.
Int nvidas;
Int num1;
• Implementa el método Juega de la clase base:
1Usando la clase de entrada por teclado copiada en la primera práctica, se leerá un entero del
teclado
◦ Llama al método ReiniciaPartida que ha heredado. (generar un número nuevo y reiniciar el
número de vidas)
◦ Muestra un mensaje al usuario pidiendo que adivine un número entre el 0 y el 10 (salida).
◦ Lee un entero del teclado y lo compara con el valor predenido por el programador:
Si es igual, muestra un mensaje “Acertaste!!“ y, tras llamar a
ActualizaRecord, sale del método.
Si es diferente, llama al método QuitaVida heredado.
Si el método QuitaVida devuelve true (Si QuitaVida!=0), significa que aún le quedan más vidas al
jugador por lo que se muestra un mensaje (salida) indicando si el número a adivinar es mayor o
menor y se le pide que lo intente de nuevo.
Si el método QuitaVida devuelve false significa que ya no le quedan más vidas al jugador, con lo
que sale del método Juega.(Si QuitaVida=0 Game Over)
Clase Aplicacion
• Contiene un método main que, tras crear una instancia de la nueva clase JuegoAdivinaNumero
que se ha creado, llama al método Juega.