You are on page 1of 4

EJERCICIO FINAL 1

Se desea diseñar un juego de rol llamado "La Batalla de las Almas", el juego está formado por una clase principal denominada "Batalla.java" donde se crean los diferentes participantes del juego y se produce el desarrollo del mismo. El principal objetivo del juego consiste en disputarse el alma de un conjunto de seres Humanos, por lo tanto existirán diferentes elementos (Ángeles y Demonios) que podrán combatir para tratar de "salvar" o "condenar" cada una de las almas puestas en juego. Los diferentes atributos y funciones básicas de cada uno de los elementos que pueden aparecer en el juego se aprecian en la figura 1. a) Diseñar el diagrama de clases que permite representar a todos los elementos involucrados en el juego, indicar las diferentes características de estas clases (abstract, interfarce....etc). Incluir en el diseño la clase Batalla y su relación con las anteriores. b) Implementar los constructores de Ángeles Demonios y Humanos, teniendo en cuenta que en el constructor deben generarse aleatoriamente el valor de sus atributos (en el rango indicado). c) Implementar el método de rezar para Ángeles, Demonios y Humanos (en los primeros dos casos, simplemente se muestra que el ser habla o no habla con Dios). En el caso de un ser humano, reza si su fe es superior a 50 puntos o su bondad supera los 60. d) Implementar el método de lucha para Ángeles y Demonios. Únicamente consistirá en generar aleatoriamente un valor entre 0 y 5 que determinará cuál de sus habilidades se aplicará sobre el humano. e) Implementar los métodos de combate de Ángeles y Demonios (engañar, guiar, proteger, tentar, seducir, probar) someten a cada humano a una prueba, pudiendo éste pasarla o no, para ello, se calcula el resultado de someterle a cada una de esas pruebas en función de las características que definen a cada humano, en la figura 2 aparecen las relaciones matemáticas entre las características del humano y cómo le afectan cada una de las pruebas. f) Implementar los métodos void conflictomoral (Ángeles a, Demonios d); y double golpear (Incorporeo s, int Habilidad); El primer método selecciona una de las habilidades del Ángel o del demonio mediante el método luchar(), una vez hecho esto llama al método golpear para el ángel y para el demonio, gana el que mayor puntuación obtenga. Si gana el ángel, la bondad del humano aumenta y su maldad disminuye. Si gana el demonio la bondad del humano disminuye y aumenta su maldad. El método golpear selecciona la habilidad que corresponde al método luchar (0=engañar, 1=guiar,....5=proteger). Cuando es aplicada la habilidad correspondiente, el humano tratará de rezar, si reza su fe aumenta en un punto, en caso contrario disminuye en la misma cantidad. g) Implementar el método main() de la clase Batalla.java, donde se debe leer como argumentos, el número de Humanos, el número de Ángeles, el número de Demonios y

. y se implementará la estructura que permita ejecutar los diferentes turnos. Ejemplo: java Batalla 100 5 5 30 En este método se construirán los diferentes elementos. y someten a cada hombre (en cada turno) a un conflicto moral.finalmente el número de turnos. así como un objeto de tipo DiosCristiano. que hará que su bondad o maldad aumente o disminuya (en función de si gana el ángel o el demonio). ver figura 3. Donde un ángel y un demonio son seleccionados aleatoriamente entre todos los posibles.