Prof. Lic Lesbia Valerio L. III - Ao de Ingeniera en Sistemas
Prueba Sistemtica
Juego basado en Personajes
Se desea disear un juego de rol llamado La Batalla de las Almas. El juego est formado por una clase principal denominada Batalla 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 tanto , existirn diferentes elementos (ngeles y Demonios) que podrn combatir para tratar de salvar o condenar cada una de las almas puestas en juego. Los diferentes atributos y funciones bsicas de cada uno de los elementos que pueden aparecer en el juego son :
Elemento Descripcin Atributos mtodos Ser Todo en el juego deriva de este ente, no dispone de ningn atributo ni funcionalidad en particular.
Ser( ); Incorpreo Todos aquellos seres que no puedan tener una realidad fsica en la tierra. double fe double maldad double bondad double engaar(Humano h); double guiar(Humano h); int luchar(Humano h); double probar(Humano h);
Universidad Politcnica de Nicaragua (UPOLI)
double proteger(Humano h); double seducir(Humano h); double tentar(Humano h); Fsico Seres que pueden ser creados en nuestro mundo.
Espiritual Interfaz que implementan aquellos seres fsicos / incorpreos y que les permite rezar a Dios. boolean rezar( ); Dios Ser de tipo incorpreo int numAngeles int numDemonios
DiosCristiano Es un tipo de Dios, en particular el profesado por la religin del mismo nombre boolean esBuenHombre(Humano h); DiosCristiano (int numAngeles, int numDemonio); ngeles Ser incorpreo y espiritual que se enfrentar a un Demonio para tratar de salvar el alma en juego. double fe: 0..200 double maldad: 0..200 double bondad: 0..10 Angeles( ) ; boolean rezar( ) ; Demonios Ser incorpreo y espiritual que se enfrentar a un ngel para tratar de condenar el alma en juego. double fe: 0..200 double maldad: 0..200 double bondad: 0..10 Demonios( ) ; boolean rezar( ) ; Humano Seres fsicos y espirituales double inteligencia : 0..200 double fe : 0..100 double maldad : 0..100 double bondad : 0..100 double alma :0..200
Humano( ) ; void conflictoMoral(Angeles a, Demonios d); double golpear( Incorpreo s, int habilidad); boolean rezar( );
Se pide: a) Disear el diagrama de clases que permite representar a todos los elementos involucrados en el juego, indicar las diferentes caractersticas de estas clases (abstractas, interfaz, etc.). Incluir en el diseo la clase Batalla y su relacin con las anteriores.
b) Implementar los constructores de ngeles, Demonios y Humanos, teniendo en cuenta que en el constructor debe generarse aleatoriamente el valor de sus atributos (en el rango indicado).
c) Implementar el mtodo 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 mtodo de lucha para ngeles y Demonios. nicamente consistir en generar aleatoriamente un valor entre 0 y 5 que determinar cual de sus habilidades se aplicar sobre el humano.
e) Implementar los mtodos de combate de ngeles y Demonios (engaar, 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 funcin de las caractersticas que definen a cada Humano, en la siguiente tabla aparecen las relaciones matemticas entre las caractersticas del Humano y cmo le afectan cada una de las pruebas:
Habilidad ngeles Demonios engaar return( ); fe humano * bondad - maldad fe angel fe angel
return( ); proteger fe humano * bondad maldad fe angel
return( ); f) Implementar los mtodos void conflictomoral( ngeles a, Demonio d) ; y double golpear(Incorporeo s, int Habilidad) ; el primer mtodo selecciona una de las habilidades del ngel o del Demonio mediante el mtodo luchar( ); una vez hecho esto llama al mtodo golpear para el ngel y para el Demonio, gana el que mayor puntuacin 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 mtodo golpear selecciona la habilidad que corresponde al mtodo luchar ( 0 = engaar, 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 mtodo main( ) de la clase Batalla.java, donde se debe leer como argumentos , el nmero de Humanos, el nmero de ngeles, el nmero de Demonios y finalmente el nmero de turnos.
En este mtodo se construirn los diferentes elementos, as como un objeto de tipo DiosCristiano, y se implementar la estructura que permita ejecutar los diferentes turnos donde para cada hombre (y en cada turno) se le someter a un conflicto moral, en funcin del cual su bondad o maldad aumentar o disminuir.
"Los problemas se deben convertir en retos, nunca en obstculos".