INTELIGENCIA EN REDES DECOMUNICACIONES
5º Ingeniería de Telecomunicación
TRABAJO FIN DE ASIGNATURA
ÍNDICE• ¿Qué es Robocode?
• Descripción de un robot de Robocode
• Comandos básicos de un robot
• Ejemplo de robot básico
• Robots avanzados
• Nuestros robots
• Nuestros equipos de robots
¿QUÉ ES ROBOCODE?
Robocode es un simulador de guerras de robotsprogramados en Java que fue creado por
Mathew Nelson (IBM).
DESCRIPCIÓN DE UN ROBOTRobot = Agente software
• Detección del entorno⇒ Radar
• Actuación sobre el entorno⇒ Movimientos del tanque⇒ Movimientos del cañón
COMANDOS BÁSICOS
Movimiento del robot (acciones bloqueantes)
turnRight(double degree) y turnLeft(double degree)ahead(double distance) y back(double distance)turnGunRight(double degree) y turnGunLeft(double degree)turnRadarRight(double degree) y turnRadarLeft(double degree)
setAdjustGunForRobotTurn(boolean flag)setAdjustRadarForRobotTurn(boolean flag)setAdjustRadarForGunTurn(boolean flag)
COMANDOS BÁSICOS
Obtención de información
getX()getY()
getHeading()getGunHeading()getRadarHeading()
getBattleFieldWidth()getBattleFieldHeight()
COMANDOS BÁSICOS
Disparando
fire(double power)fireBullet(double power)
COMANDOS BÁSICOS
Eventos
void onScannedRobot(ScannedRobotEvent event)void onHitByBullet(HitByBulletEvent event)void onHitRobot(HitRobotEvent event)void onHitWall(HitWallEvent event)
double getBearing()double getEnergy()String getName()etc.
EJEMPLO DE ROBOT BÁSICOpackage nombrePaquete;
import robocode.Robot;import robocode.ScannedRobotEvent;
public class MiPrimerRobot extends Robot {public void run() {
while (true) {ahead(100);turnGunRight(360);back(100);turnGunRight(360);
}}
public void onScannedRobot(ScannedRobotEvent e) {fire(1);
}}
ROBOTS AVANZADOS
robocode.AdvancedRobot⇒ Extiende a robocode.Robot⇒ Acciones asíncronas
robocode.TeamRobot⇒ Extiende a robocode.AdvancedRobot⇒ Comunicación entre robots
NUESTROS ROBOTS
WallsRobot
• Robot básico
• Movimiento pegado a los muros
• Barrido del radar
• Disparo inteligente
• Modo huida
NUESTROS ROBOTS
TrackerRobot
• Robot avanzado
• Busca objetivos
• Acercamiento al objetivo
• Disparo predictivo
• Modo retirada
NUESTROS EQUIPOS
WallsTeam
• Robots básicos del tipo WallsRobot
• Movimiento pegado a los muros
• Barrido del radar
• Disparo inteligente
• Modo retirada
• Modificaciones para no disparar a los compañeros
NUESTROS EQUIPOSTrackerTeam• Robots avanzados que extienden de RobotTeam
• Líder del tipo TrackerRobot– Busca objetivos– Acercamiento al objetivo– Disparo predictivo– Modo retirada– Comunicación de objetivo
• Compañeros del tipo TeamDroid– Disparo al objetivo– Sin radar, mayor energía
FIN
Realizado por:
Carlos Lapuente IribasJuan Manuel Carrero LealAlberto Heredia García