Anda di halaman 1dari 6

Programacin Orientada a Objetos - 2011

UNPSJB Fac. Ingeniera Sede Trelew

War Androids
1. Objetivo: ...................................................................................................................... 2
2. Descripcin: ................................................................................................................ 2
2.1. Desarrollo del juego: ............................................................................................. 2
2.2. Escenario.............................................................................................................. 3
2.3. Robot funcionamiento: ....................................................................................... 3
Batera Funcionamiento: ...................................................................................... 4
Radar Funcionamiento: ......................................................................................... 4
Can funcionamiento .......................................................................................... 4
Satlite - funcionamiento .......................................................................................... 4
Bombas funcionamiento ........................................................................................ 5
2.4. Bonus funcionamiento ....................................................................................... 5
2.5. Equipo Humano .................................................................................................... 5
2.6. Equipos Autnomos: ............................................................................................. 5
Equipo Soldado Ryan:.............................................................................................. 5
Equipo Quejo Dido: .................................................................................................. 5
Equipo Neurotix:....................................................................................................... 5
2.7. Ejemplo del Archivo de Configuracin:.................................................................. 6

1. Objetivo:
El proyecto ser utilizado como una herramienta para el desarrollo prctico de las
incumbencias propias de la ctedra. Las entregas sucesivas permiten la implementacin
de los temas tericos y la generacin de un proyecto por etapas y de una envergadura
importante que facilita la asimilacin de las caractersticas de POO.
Dado el objeto de la ctedra de lograr un mejor aprendizaje del alumno, se ha diseado
una aplicacin que implementa un juego sencillo en distintas etapas. Cada etapa, de una
complejidad incremental, se disea buscando la coordinacin entre el dictado terico y su
aplicacin en dicho desarrollo.
El trabajo deber ser realizado bajo las condiciones explicitadas en Programas y
Condiciones de Cursado de la ctedra.
Parmetros de juego:
Existen una serie de parmetros del juego que nos permitirn ajustar el funcionamiento
del mismo. Cada parmetro tiene un nombre y valor, si el valor no es indicado se tomar
un valor defecto cuando corresponda.
En etapas avanzadas del desarrollo sern ledas de un archivo de configuracin.

2. Descripcin:
El juego War Androids consiste en una batalla de distintos equipos que se desarrolla
dentro de un escenario. Cada equipo cuenta con:
Un robot
Un refugio
Una cantidad de satlites de ayuda
Los equipos compiten por cumplir su objetivo de rescate de personas desde una zona de
rescate hacia su base. Aquel equipo que cumpla el objeto de rescatar la mayor cantidad
de personas en un tiempo determinado (configurable) o cuando no quedan robots en
juego.
Un robot adems de poder rescatar de a una persona por vez desde la zona de rescate
hasta su refugio, contar con armamento y otros atributos que podr utilizar para atacar al
resto de los robots con el objeto de ganar la batalla. De esta forma cada robot podr
implementar distintas estrategias en la batalla.

2.1. Desarrollo del juego:


Al inicio del juego cada robot ubicar su refugio en cualquier lugar del escenario fuera de
un radio mnimo alrededor de la zona de rescate. Una vez que se fija el refugio no puede
cambiarse de lugar. Cada robot se desplaza por el escenario desarrollando su estrategia
de juego. La estrategia puede ser rescatar personas, atacar a algn robot, combinaciones
de ambas, etc.
Para rescatar una persona deber dirigirse a la zona de rescate que siempre se ubicar
en la zona central del escenario. El robot solo puede transportar una persona por vez. La
persona se considera rescatada cuando el robot logra llegar a su refugio.

Si un robot sin personas en rescate colisiona con un refugio de otro equipo y este cuenta
con personas ya rescatadas tomar una de ellas y podr llevarla de igual forma que al
tomar personas de la zona de rescate.
La colisin de un robot contra otro disminuye su escudo en una cantidad (configurable).
Durante el transcurso del juego aparecern bonus en forma aleatoria en el escenario.
Existen tres tipos de bonus: de batera, de escudo y bombas. Ver funcionamiento de
bonus.
Los equipos, salvo un equipo que llamaremos equipo humano, funcionarn en forma
automtica desarrollando distintas estrategias de juego predefinidas. De esta forma el
equipo humano comandar su robot por teclado/mouse e intentar vencer a los robots
enemigos.
Durante el desarrollo del juego se mostrar en pantalla el estado de cada equipo. Se
deber identificar grficamente todos los componentes de un equipo con un color distinto.

2.2. Escenario
El escenario se define por un alto (configurable) y un ancho (configurable) medido en
pixeles. En la zona central del escenario se ubica la zona de rescate desde donde los
robots buscarn a las personas para llevarlas a su refugio.

2.3. Robot funcionamiento:


Cada robot cuenta con una serie de atributos que le permiten atacar y defenderse en el
desarrollo de su estrategia de juego:
Atributos del Robot:
- Batera: Cada robot cuenta con una batera que se consume cuando se desplaza.
Si la batera se agota, pierde la capacidad de desplazarse pero puede realizar y
utilizar las dems actividades. Ver funcionamiento de batera.
- Escudo: Cada impacto que recibe el robot disminuye su escudo en una cantidad
(configurable) de acuerdo a la potencia del mismo. Cuando el escudo llega a 0 el
robot se destruye. Si tuviera una persona para su rescate la misma desaparece
junto con el robot.
- Radar: El robot cuenta con un radar que le permite detectar las entidades. Ver
funcionamiento de radar para ms detalle.
- Can: El robot cuenta con un can que dispara rayos laser hacia cualquier
trayectoria sin importar la direccin en la que se desplaza. Cada disparo produce
un dao (configurable) al impactar con otra entidad en el escenario. Ver
funcionamiento del can.
- Satlites: Cada robot cuenta con la posibilidad de disponer en el escenario de una
cantidad configurable de satlites. Una vez dispuestos en el escenario realizan un
escaneo con su radar y si detecta entidades enemigas las ataca con su can. Ver
funcionamiento satlite.
- Bombas: Cada robot cuenta con una cantidad de bombas (configurable) que podr
depositar en el escenario. Dichas bombas al ser impactadas por cualquier entidad,
inclusive el robot que la deposit disminuir su escudo en una cantidad de
unidades (configurable).

Batera Funcionamiento:
El desplazamiento del robot consume energa de su batera interna. La batera comienza
con una carga configurable y se decrementa en una unidad cada vez que avanza el robot.
Si este se encuentra trasladando una persona el consumo se duplica si el peso de la
persona supera cierto valor (configurable). La batera se puede incrementar una cantidad
(configurable) si consigue un bonus de batera no superando el nivel inicial.
Radar Funcionamiento:
Cada radar acta como dispositivo para poder detectar la posicin de otros elementos
El radar posee un ngulo de apertura medido en grados que indica el rea de barrido en
cada ciclo de escaneo y un alcance, que es la distancia hasta la cual el radar puede
detectar elementos. A mayor ngulo de apertura, menor es el alcance del radar; esta
funcin viene dada por:
alcance = min + (max min) * (360 apertura) / 360
Donde:
alcance: Alcance del radar
min: Alcance mnimo configurable establecido para cualquier radar.
max: Alcance mximo configurable establecido para cualquier radar.
apertura: Angulo de apertura de barrido del radar
Ejemplo: min: 40, max: 500, apertura: 30
Entonces, alcance = 40 + (500-40) * (360-30)/360 = 462
El radar posee tambin, un ngulo de direccin, con esta posibilidad el tanque puede
avanzar y el radar escanear en otras direcciones (por ej. hacia atrs: ngulo de 180,
hacia su derecha: -90, o su izquierda: 90).
En caso de detectar entidades debe notificar a la entidad indicndole el listado de todas
las entidades detectadas. Cada robot podr consultar el estado de una entidad detectada
como parte de la estrategia de juego que implemente.
Can funcionamiento
Cada can dispara laser, cuyo poder de destruccin depende de la distancia recorrida
hasta el objetivo.
El disparo tiene un recorrido mximo de 100 pixel y su dao es inversamente proporcional
al recorrido (Ej. si impacta a los 50 pixel desde su origen, el dao es de 50 unidades, si
impacta a los 10 pixel el dao es de 90). (Ayuda: calcular el dao mediante la frmula de
recta).
Debido a la temperatura que producen los disparos, el can solo puede realizar un
disparo cada un mnimo configurable de segundos.
Satlite - funcionamiento
El satlite cuenta con un radar y un can. Utiliza su radar para escanear en busca de
entidades. Cuando detecta una entidad, salvo el que la gener, le dispara laser.
El satlite cuenta con un valor configurable. Si dicho escudo es inferior a 0 el mismo se
autodestruye.

Si un disparo impacta con un bonus lo destruye. Si el bonus es de batera le otorga el


beneficio al robot.
Cuando el radar del satlite detecta entidades debe notificar a su creador. De esta forma
el robot podr cambiar su estrategia de juego si lo considera pertinente.
Bombas funcionamiento
Las bombas depositadas por cada robot explotan al ser colisionadas por las entidades.
Decrementan el escudo de la entidad en un valor configurable de unidades. Cuando un
disparo laser las impacta las bombas de destruyen.

2.4. Bonus funcionamiento


Dentro del escenario pueden aparecer 3 tipos de bonus en posiciones aleatorias cada un
valor configurable de segundos. No tienen movimiento. El bonus de batera recarga al
nivel inicial la batera del robot que lo alcance, el bonus de escudo repara la cantidad de
escudos del robot en un valor configurable de unidades. Por ltimo el bonus bomba
aumenta la cantidad de bombas del robot en un valor configurable de unidades. Tienen un
tiempo de vida limitado configurable, transcurrido dicho tiempo, si no son alcanzados por
un robot o disparo, desaparecen.

2.5. Equipo Humano


El equipo humano ser un equipo que cuente con los mismos atributos que los dems
pero comandado por teclado/mouse. Una vez que se indique una direccin de movimiento
continuar el mismo hasta indicar otro sentido o su parada. Mientras se mueve podr
realizar disparos, usar su radar, etc.

2.6. Equipos Autnomos:


Salvo el equipo comandado por el teclado/mouse los dems equipos a implementar
debern funcionar en forma autnoma cumpliendo alguna estrategia de juego. Se deber
implementar los siguientes equipos autnomos cumpliendo las premisas que se
establecen:
Equipo Soldado Ryan:
El equipo siempre busca rescatar personas y llevarlas a su refugio. Deja los
satlites cerca de su refugio. No ataca a los enemigos. Busca los bonus de batera
si le queda menos del 40%.
Equipo Quejo Dido:
Se mueve cerca de la zona de rescate de personas. Cuando detecta un robot
enemigo con una persona lo ataca. No rescata personas. Ubica sus satlites cerca
de la zona de rescate. Solo busca los bonus de batera si su nivel es menor del
20%. Destruye todos los dems bonus encontrados.
Equipo Neurotix:
Implementa dos estrategias distintas, la primera busca rescatar una persona, una
vez que lo consigue, cambia a ataque a algn robot enemigo o satlite. Cuando
consigue destruir un robot enemigo retorna a su estrategia inicial.

2.7. Ejemplo del Archivo de Configuracin:


<?xml version="1.0"?>
<root>
<tablero>
<item key="alto" value="400"/>
<item key="ancho" value="400"/>
</tablero>
<juego>
<item key="tiempo-vida" value="1000"/>
<item key="cantidad-equipos" value="6"/>
<item key="delay" value="10"/>
</juego>
<radar>
<item key="alcance-maximo" value="400"/>
<item key="alcance-minimo" value="20"/>
<item key="apertura" value="10"/>
</radar>
<elemento>
<item key="velocidad" value="5"/>
<item key="alto" value="10"/>
<item key="ancho" value="10"/>
</elemento>
<laser>
<item key="velocidad" value="15"/>
</laser>
<robot>
<item key="combustible-inicial" value="2000"/>
<item key="cantidad-escudos-inicial" value="200"/>
<item key="dao-choque" value="10"/>
<item key="dao-laser" value="1"/>
</robot >
<caon>
<item key="tiempo-enfriado" value="1"/>
</caon>
<bonus-bateria>
<item key="valor-carga" value="30"/>
<item key="dao-explosion" value="20"/>
</bonus-bateria >
<bonus-escudo>
<item key="valor-carga" value="20"/>
</bonus-escudo>
</root>

Anda mungkin juga menyukai