Dfhs

Páginas: 8 (1803 palabras) Publicado: 13 de diciembre de 2010
computacion biologica

Práctica III: “RoboCode”

Introducción
• Robocode es un entorno de simulación de guerras de robots, desarrollado por Alphaworks de IBM • Robocode nos permite programar tanques de combate en Java para pelear en el campo de batalla contra tanques programados por otros jugadores. • Existen dos modos de juego: batalla individual, en el que cada robot lucha contra todoslos demás, y batalla en equipo, en el que un ejército de robots lucha por la victoria de modo colaborativo. En nuestro caso nos centraremos en la batalla individual.

Descripción del problema
• Anatomía de un robot y del terreno de combate:

Descripción del problema
• • • • El objetivo del juego es generar la IA que permita a un robot derrotar a otros robots. Robocode cuenta con multitud demétodos para gestionar los disparos y los ataques a nuestros enemigos (). Al principio de cada combate todo robot comienza con un nivel de energía por defecto, y un robot muere cuando su energía disminuye hasta 0. La energía de un robot puede disminuir por
– – – Alcance de un disparo enemigo Colisión con un robot enemigo Colisión con paredes u obstáculos del campo de batalla



Además, laenergía liberada en el disparo también resta energía al robot.

Descripción del problema
• Cuanta más energía se utilice en un disparo, mayor daño se inflingirá en el robot enemigo (en caso de alcanzarlo, claro está) pero también más energía nos restará a nosotros. Pero no todo son pérdidas de energía, también se recupera energía cuando se alcanza a algún enemigo, o bien, de forma constante por“enfriamiento de los cañones”.



Descripción del sistema
• En Robocode hay dos elementos principales, los robots y las batallas. Las batallas se llevan a cabo en el terreno de combate entre los robots, que juegan por sí mismos bajo una programación concreta.

Descripción del sistema
• Todas las clases generadas en Robocode extienden de la clase robocode.Robot, con métodos que permiteninteractuar con el juego.

Ejemplo de robot
package ; import robocode.*; import java.awt.Color; public class TerminatorI extends Robot { public void run() { setColors(Color.red,Color.blue,Color.green); while(true) { // Replace the next 4 lines with any behavior you would like ahead(100); turnGunRight(360); back(100); turnGunRight(360); } } public void onScannedRobot(ScannedRobotEvent e) {fire(1); } public void onHitByBullet(HitByBulletEvent e) { turnLeft(90 - e.getBearing()); } }

Descripción del sistema
• Durante el combate se generan “eventos”, estos eventos son situaciones que se producen a partir de las cuales el robot puede decidir hacer unas cosas u otras. Un robot básico tiene por defecto manejadores de eventos, que consisten en no hacer nada cuando se produzcan, pero al sertodo robot heredero de la clase Robot, estos métodos se pueden sobrescribir y así añadir funcionalidad a los robots cuando dichos eventos se produzcan.



Descripción del sistema
• A la hora de programar los robots hay que tener en cuenta 3 áreas fundamentales del código:
1. 2. Un área en la que se definen las variables de clase, disponibles dentro del método run(), así como en el restoimplementados. El propio método run(), que es llamado por el gestor de combate para comenzar la vida del robot y típicamente se divide en dos áreas: • Área en la que se definen las cosas que sólo se harán una vez por cada instancia del robot. • Área dentro de un while infinito en la que se define la acción repetitiva en la que se verá envuelto el robot. Métodos auxiliares para usar por el robotdentro de su método run(). En esta zona también se ponen los manejadores de eventos que se quieran implementar.

3.

Descripción del sistema
Órdenes que se pueden utilizar: • public void ahead(double distancia)
– Mueve el robot hacia delante la distancia pasada por parámetro. Se ejecuta inmediatamente y no para devuelve nada hasta que ha finalizado el movimiento. Si el robot chocase con...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS