Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Esta práctica tiene un peso total de 1,425 puntos sobre la nota final del curso.
Vamos a implementar un pequeño juego de dados y cartas.
Tendremos una clase Dado. Dicha clase tiene dos enteros que especifican:
Por ejemplo, podríamos tener un dado de 4 caras que fueran los valores: 7, 8, 9 y 10.
Esta clase cumple con la interfaz ILanzable, que obliga a tener que implementar un método
lanzar, que obviamente, devolverá un número al azar entre el número mínimo y el máximo.
El número mínimo de caras del dado será de 4. Además, la interfaz define otros dos
métodos, getMin y getMax, que devolverán respectivamente el mínimo número posible, y el
máximo del dado.
El tablero estará compuesto por una serie de planetas. Cada planeta puede estar
desocupado o conquistado por un jugador. Cada planeta tiene un número máximo de 10
minas y un número determinado de habitantes (incluso antes de que sea conquistado). No
hay un máximo de habitantes en el planeta. Además, cada planeta tiene asociadas al inicio:
● 5 unidades de piedra
● 4 unidades de hierro
● 2 unidades de combustible
● 30 habitantes
Además, podremos obtener cartas. Todas las cartas comparten un nombre y un precio,
pero no comparten nada más en común. Existen diferentes tipos de cartas:
Todas las cartas definen los métodos getPrecio y getNombre, que no podrán ser nunca
redefinidos en las clases hijas. El precio de las cartas se mide en puntos de oro. Los
jugadores, tendrán que pagar ese oro (no hace falta que el oro vaya a ningún sitio, vale con
restarlo de sus reservas).
Los planetas implementan la interfaz IAtacable. Al ser atacado, en el caso de que cuente
con un escudo protector, tiene una probabilidad determinada de evitar cualquier daño: si se
saca el número más alto del dado o el más bajo, se esquivará el ataque. Para ello se
utilizará el dado B.
Por último, se preguntará a qué planeta desea enviar la carga. Se mostrará una lista
de todos los planetas no conquistados por los jugadores contrarios. Se añadirá una
opción 0 que cancelará la acción y volverá al menú principal sin contar la jugada.
Por último, se preguntará a qué planeta desea enviar a las personas. Se mostrará
una lista de todos los planetas no conquistados por los jugadores contrarios. Se
añadirá una opción 0 que cancelará la acción y volverá al menú principal sin contar
la jugada.
Costes de reparación/mejora:
● Los objetos que sean reparables implementarán la interfaz IReparable, que define el
método reparar, que sume a su defensa un número de puntos concreto.
● Los objetos que sean mejorables implementarán la interfaz IMejorable, que define el
método mejorar.
● Reparación de naves: se necesitan 3 unidades de hierro y 2 de combustible para
reparar 10 puntos de defensa.
● Mejora de naves: se necesitan 3 unidades de hierro, 2 de piedra y 2 de combustible.
● Reparación de escudo protector: se necesitan 2 de piedra, 2 de hierro y 3 de
combustible para reparar 15 puntos de defensa.
Costes de construcción:
Nota importante: para construir o reparar cualquier elemento, es IMPRESCINDIBLE que las
materias primas necesarias estén en dicho planeta. Recuerda que las naves también están
siempre orbitando un planeta.
Debes crear las excepciones oportunas y controlar el flujo del código mediante dichas
excepciones.
Puntuación:
El juego consiste en conquistar todos los planetas o ser el jugador con mayor puntuación al
final de un número determinado de rondas. La puntuación se consigue:
Como ya se comentó en clase, no tienes que implementar todas las acciones. Tienes que
hacer:
nombreApellidos_practicaHerencia.zip
Reducción de puntos: