Ejercicios Para Practicar


EJERCICIO N°1 (clases y  objetos)
  • Clase Juego
Implementar una clase Juego con las siguientes características:
  • Atributos
Tiene como atributo público un entero que indica el número de vidas que le quedan al jugador en la partida actual.
  • Métodos
Tiene como método el constructor que acepta un parámetro de tipo entero que indica el número de vidas iniciales con las que parte el jugador.
Tiene un método MuestraVidasRestantes que visualiza por pantalla el número de vidas que le quedan al jugador en la partida actual.
Además esta clase tiene también el main que debe realizar lo siguiente: Crea una instancia de la clase Juego indicando que el número de vidas es 5, llama al método MuestraVidasRestantes del objeto creado, resta una vida al valor del atributo con las vidas y vuelve a llamar a MuestraVidasRestantes, crea otra instancia de la clase Juego indicando que el número de vidas es también de 5, llama al método MuestraVidasRestantes de la nueva instancia y luego al de la instancia anterior

EJERCICIO N°2 (herencia y polimorfismo)

En este ejercicio se va a implementar un juego en el que el usuario1 tenga que adivinar un número que conoce el programa. El código correspondiente a cada clase que se implemente deberá estar en un chero java separado y que tenga el mismo nombre que la clase.
  • Clase Juego
Añadirle un método abstracto 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 de la misma.
  • 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. Implementa el método Juega de la clase base: Llama al método ReiniciaPartida que ha heredado. Muestra un mensaje al usuario pidiendo que adivine un número entre el 0 y el 10.
Lee un entero del teclado y lo compara con el valor predefinido 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, significa que aún le quedan más vidas al jugador por lo que se muestra un mensaje 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.
  • Clase Aplicacion
Contiene un main que, tras crear una instancia de la nueva clase JuegoAdivinaNumero que se ha creado, llama al método Juega.

EJERCICIO N° 3 (interfaces y arrays)

  • Interfaces
En este ejercicio se va a implementar una interfaz Jugable que implementarán  los juegos desarrollados hasta ahora y nuevos que se desarrollen. Esta interfaz nos permitirá especificar una serie de operaciones comunes que deben implementar todos los juegos y que nos permitirán manejarlos de forma genérica posteriormente.
  • Clase Juego
Se eliminará su método abstracto Juega, pero la clase se seguirá manteniendo como abstracta ya que no interesa que se creen instancias de ellas directamente.
Interfaz Jugable
Dispondrá de un método Juega que cumplirá el mismo objetivo que el que se ha quitado a la clase Juego.Se incorporará un método MuestraNombre que no tome ningún parámetro y que obligue a las clases que implementen la interfaz a mostrar un mensaje por pantalla con el nombre del juego. Se incorporará un método MuestraInfo que no tome ningún parámetro y que obligue a las clases que implementen la interfaz a mostrar un mensaje por pantalla con una descripción de cómo jugar al juego.
  • Clase JuegoAdivinaNumero
Debe implementar la interfaz Jugable.El método MuestraNombre visualizará por pantalla el texto
  • Adivina un número
El método MuestraInfo, visualizará por pantalla una descripción de cómo se juega al juego, informando del número de intentos que se le dan al jugador.
  • Clase JuegoAdivinaPar
Redefine el método MuestraNombre para que visualice por pantalla el texto Adivina un número par. Redefine el método MuestraInfo
  • Clase JuegoAdivinaImpar
Redefine el método MuestraNombre para que visualice por pantalla el texto Adivina un número impar.Redefine el método MuestraInfo
  • Clase Aplicación
En el método main creará un objeto de cada uno de los juegos mencionados. A continuación llama los métodos MuestraNombre, MuestraInfo y Juega de cada uno de los tres objetos creados.

Arrays

Para comprender la utilidad de las interfaces, implementamos en este ejercicio un array de interfaces que permitirá invocar a cualquiera de los tres juegos de forma genérica.
  • Clase Aplicacion
Método EligeJuego. Método público y estático que no toma parámetros y devuelve un objeto del tipo Jugable. Crea un objeto de cada uno de los tres juegos implementados. Crea un array de tres elementos de tipo interfaz Jugable. Rellena este array con los objetos creados para los distintos juegos.
A partir de este momento, sólo se trabajará con este array de tipo interfaz Jugable para referirse a cualquiera de los juegos. Muestra un menú por pantalla con el nombre de los tres juegos y pide al usuario que elija un juego introduciendo un número entre 0 y 2. Si el número introducido no es válido, seguirá pidiendo al usuario un número válido. Devuelve el elemento del array correspondiente al número introducido por el usuario.
  • Main
Llama al método EligeJuego para obtener una referencia de tipo interfaz Jugable al juego seleccionado por el usuario. Llama al método MuestraNombre de este juego. A continuación llama al método MuestraInfo del juego. Llama al método Juega del mismo para comenzar una nueva partida. Finalmente, tras concluir la partida, pregunta al usuario si desea jugar de nuevo y en caso afirmativo vuelve a repetir los pasos anteriores.

Comentarios

Entradas Populares