robocode irc - uc3m · 2005. 1. 24. · entorno de simulación para guerra de robots java robot:...

30
ROBOCODE IRC ROBOCODE IRC Jorge Carrasco Jorge Carrasco Troitiño Troitiño Elisabeth Pérez García Elisabeth Pérez García

Upload: others

Post on 03-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

ROBOCODE IRCROBOCODE IRC

Jorge CarrascoJorge Carrasco TroitiñoTroitiñoElisabeth Pérez GarcíaElisabeth Pérez García

Page 2: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

ROBOCODEROBOCODE

�� Entorno de simulación para guerra de robotsEntorno de simulación para guerra de robotsJavaJava

�� Robot:Robot:

�� Cuerpo del robotCuerpo del robot�� Cañón giratorio del robotCañón giratorio del robot�� Radar giratorioRadar giratorio

Page 3: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

Nuestros RobotsNuestros Robots

�� Robots de combate individualRobots de combate individual�� IRCeitorIRCeitor�� IRCBotIRCBot

�� Robots de combate en equipoRobots de combate en equipo�� IRCTeamBotIRCTeamBot�� TeamyTeamy

Page 4: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

ROBOT INDIVIDUALROBOT INDIVIDUAL

�� Actividades principales a desarrollar por unActividades principales a desarrollar por unrobot para ser competitivo:robot para ser competitivo:�� MOVERSE inteligentementeMOVERSE inteligentemente�� ESQUIVAR ataquesESQUIVAR ataques�� APUNTAR con precisiónAPUNTAR con precisión�� DISPARAR adecuadamenteDISPARAR adecuadamente

Page 5: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCeitorIRCeitor, un robot calculador, un robot calculadorMovimiento y EsquivoMovimiento y Esquivo

�� campo de batallacampo de batalla�� Movimiento alrededorMovimiento alrededor

del adversariodel adversario�� distancia óptima a partirdistancia óptima a partir

de la experienciade la experiencia

�� Cambio de sentido yCambio de sentido yvelocidad en elvelocidad en elmovimiento cuando elmovimiento cuando elcontrincante nos alcanzacontrincante nos alcanza

Page 6: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCeitorIRCeitor, un robot calculador, un robot calculadorApuntamientoApuntamiento

�� Almacenar en variables la situación actualAlmacenar en variables la situación actual�� Variación con el instante posteriorVariación con el instante posterior�� Promediar el movimiento del adversarioPromediar el movimiento del adversario

�� Ángulo de movimientoÁngulo de movimiento�� A partir de los disparos erróneos cometidos yA partir de los disparos erróneos cometidos y

del promedio del movimiento del adversario:del promedio del movimiento del adversario:calcular dondecalcular donde posicionar el cañónposicionar el cañón para tenerpara tenermás posibilidades de aciertomás posibilidades de acierto

Page 7: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

ApuntamientoApuntamientoPromedio Movimiento:Promedio Movimiento: instante 1instante 1

Page 8: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

ApuntamientoApuntamientoPromedio Movimiento:Promedio Movimiento: instante 2instante 2

Page 9: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCeitorIRCeitor, un robot calculador, un robot calculador¿Cuándo Disparar?¿Cuándo Disparar?

�� Cañón esté fríoCañón esté frío�� potencia de disparopotencia de disparo

�� Cañón paradoCañón parado�� Distancias no demasiadoDistancias no demasiado

grandesgrandes�� Si tengo muy pocaSi tengo muy poca

energía sólo cuando laenergía sólo cuando ladistancia sea bastantedistancia sea bastantepequeñapequeña�� Para asegurar el disparoPara asegurar el disparo

Page 10: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCeitorIRCeitor, un robot calculador, un robot calculadorPotencia del disparoPotencia del disparo

�� La potencia del disparo depende de 3 variables:La potencia del disparo depende de 3 variables:1.1. La energía del adversarioLa energía del adversario2.2. La distancia al enemigoLa distancia al enemigo3.3. Mi propia energíaMi propia energía

Page 11: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBot

�� Movimiento ApropiadoMovimiento Apropiado

�� Evasión de peligrosEvasión de peligros

�� Registro de EnemigosRegistro de Enemigos

�� Disparo ApropiadoDisparo Apropiado

Page 12: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBotMovimiento ApropiadoMovimiento Apropiado

�� Factores que provocan o alteran el movimientoFactores que provocan o alteran el movimiento�� Número de enemigos vivosNúmero de enemigos vivos

�� UNO...UNO...Combate cuerpo a cuerpoCombate cuerpo a cuerpo, hay que ser, hay que serinteligentes...movimientos sucesivosinteligentes...movimientos sucesivos

�� MAS DE UNO...Qué enemigo constituye un mayorMAS DE UNO...Qué enemigo constituye un mayorpeligro?, alejémonos de élpeligro?, alejémonos de él

�� Estado de evasiónEstado de evasión, componente impredecible, componente impredecible�� Proximidad a los murosProximidad a los muros, los choques debilitan, los choques debilitan

innecesariamenteinnecesariamente

Page 13: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBot,,Cuerpo a cuerpo.Cuerpo a cuerpo.-- Instante 1Instante 1

El enemigo es detectado. El principio de su finEl enemigo es detectado. El principio de su fin

Page 14: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBot,,Cuerpo a cuerpo.Cuerpo a cuerpo.--Instante 2Instante 2

Ligeros acercamientos en media luna mientrasLigeros acercamientos en media luna mientrasabrimos fuegoabrimos fuego

Page 15: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBot,,Cuerpo a cuerpo.Cuerpo a cuerpo.-- Instante 3Instante 3

Rematando la faena a plena potencia de disparoRematando la faena a plena potencia de disparo

Page 16: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBot,,Evasión de peligrosEvasión de peligros

Objeto Evasor: cambia a cada evento, a cada ronda,Objeto Evasor: cambia a cada evento, a cada ronda,el enemigo no sacará nada útil al analizarnosel enemigo no sacará nada útil al analizarnos

�� Peligro: Combate cuerpo a cuerpoPeligro: Combate cuerpo a cuerpo�� Solución: Sucesión de movimientos marcados por elSolución: Sucesión de movimientos marcados por el

evasorevasor

�� Peligro: Nos están disparandoPeligro: Nos están disparando�� Solución: Cambiamos nuestro tipo de evasión, y enSolución: Cambiamos nuestro tipo de evasión, y en

consecuencia nuestro movimientoconsecuencia nuestro movimiento

Page 17: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBot,,Registro de enemigosRegistro de enemigos

�� Clase EnemigoClase Enemigo

�� Registro de enemigos:Registro de enemigos: HashtableHashtable�� Posibilidades: controlarlos, elegirlos...Posibilidades: controlarlos, elegirlos...

Page 18: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCBotIRCBot,,Disparo ApropiadoDisparo Apropiado

�� A quién disparar?A quién disparar?�� “target” asignado:“target” asignado:

�� Encontramos otro mejorEncontramos otro mejor�� Seguimos con élSeguimos con él

�� “target” sin asignar:“target” sin asignar:�� Al detectar un enemigo se asignará.Al detectar un enemigo se asignará.

�� Enemigo inmóvil: disparo directoEnemigo inmóvil: disparo directo�� Choque con enemigo: máxima potenciaChoque con enemigo: máxima potencia�� Disparo:Disparo:

�� dirección: función de orientación, velocidad...dirección: función de orientación, velocidad...�� potencia: función de energía, distancia...potencia: función de energía, distancia...

Page 19: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

ROBOT DE EQUIPOROBOT DE EQUIPO

�� Opciones:Opciones:�� Líder yLíder y droidesdroides::�� RobotsRobots equiequi--funcionalesfuncionales

�� Inteligencia distribuida(radares)Inteligencia distribuida(radares)�� Aportación equitativa de todos los robotsAportación equitativa de todos los robots�� No perder funcionalidad al morir un compañeroNo perder funcionalidad al morir un compañero

�� Características de un robot de grupoCaracterísticas de un robot de grupo�� IndividualesIndividuales�� ColectivasColectivas

Page 20: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

Robot de EquipoRobot de Equipo

�� Acciones IndividualesAcciones Individuales�� Movimiento del robot (podría depender también delMovimiento del robot (podría depender también del

colectivo)colectivo)�� Búsqueda de nuevos enemigosBúsqueda de nuevos enemigos�� Disparo una vez seleccionado el enemigoDisparo una vez seleccionado el enemigo

�� Acciones ColectivasAcciones Colectivas�� Evitar disparar a nuestros compañerosEvitar disparar a nuestros compañeros�� Ataque ordenado para acabar cuanto antes contra losAtaque ordenado para acabar cuanto antes contra los

enemigos, que también pasan a ser colectivosenemigos, que también pasan a ser colectivos

Page 21: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCTeamBot,IRCTeamBot,afrontando la lucha en equipoafrontando la lucha en equipo

Page 22: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCTeamBot,IRCTeamBot,afrontando la lucha en equipoafrontando la lucha en equipo

�� Movimiento:Movimiento:�� Imperativo no chocarse contra compañeros, restaríaImperativo no chocarse contra compañeros, restaría

vida a los dos robots, gran pérdida para el equipovida a los dos robots, gran pérdida para el equipo

�� Localización enemiga:Localización enemiga:�� “static Hashtable enemigos”, enemigos comunes“static Hashtable enemigos”, enemigos comunes�� Todos nuestros robots contribuyen a mantenerTodos nuestros robots contribuyen a mantener

actualizada la base de datos de enemigos: ampliarla,actualizada la base de datos de enemigos: ampliarla,actualizarla, descartar enemigos...actualizarla, descartar enemigos...

Page 23: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

Teamy,Teamy,““ la máquina”la máquina”

Page 24: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

Teamy,Teamy,“la máquina”“la máquina”

�� Robot de equipo basado en unaRobot de equipo basado en una MÁQUINA DEMÁQUINA DEESTADOSESTADOS

�� Similar a IRCTeamBot en aspectos puntualesSimilar a IRCTeamBot en aspectos puntuales�� Nuevo mecanismo de disparoNuevo mecanismo de disparo�� Uso de una matrizUso de una matriz enemyParametersenemyParameters que contendráque contendrá

gran cantidad de información del enemigo que nosgran cantidad de información del enemigo que nosocupe en cada momento.ocupe en cada momento.

Page 25: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

Teamy,Teamy,“la máquina”“la máquina”

�� Ejecución más ordenada e intuitivaEjecución más ordenada e intuitiva�� Menos coste computacionalMenos coste computacional�� Maquina de cuatro estados:Maquina de cuatro estados:

INCIO TARGETING

CELEBRATING FIRING

Page 26: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

Teamy,Teamy,“la máquina”“la máquina”

�� INICIO:INICIO:�� Cada vez que se llama aCada vez que se llama a runrun()()�� Inicialización de parámetros del robotInicialización de parámetros del robot

�� TARGETING:TARGETING:�� Se lanzan escaneos de radar y se espera a encontrarSe lanzan escaneos de radar y se espera a encontrar

algo interesantealgo interesante�� Se encuentran enemigos y se guarda su informaciónSe encuentran enemigos y se guarda su información

Page 27: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

TeamyTeamy,,“la máquina”“la máquina”

�� FIRINGFIRING�� Una vez asignado el enemigo se abre fuego sobre élUna vez asignado el enemigo se abre fuego sobre él�� Hasta que el grupo no halla matado al robot objetivoHasta que el grupo no halla matado al robot objetivo

no se cambia de objetivo enemigono se cambia de objetivo enemigo�� Algoritmo distinto de disparo, con iteraciones paraAlgoritmo distinto de disparo, con iteraciones para

mejorar la punteríamejorar la puntería

�� CELEBRATINGCELEBRATING�� En caso de victoria nos regodeamos un pocoEn caso de victoria nos regodeamos un poco

Page 28: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

Grado Letal de nuestros equiposGrado Letal de nuestros equipos

�� Contra equipo de muestraContra equipo de muestra RobocodeRobocode, 25 rondas, 25 rondas�� IRCTeamBotIRCTeamBot

�� TeamyTeamy

Page 29: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCTeamBotIRCTeamBot vs.vs. TeamyTeamy

�� Equipos de cuatro robots cada unoEquipos de cuatro robots cada uno�� 25 rondas25 rondas�� Resultados:Resultados:

Page 30: robocode irc - UC3M · 2005. 1. 24. · Entorno de simulación para guerra de robots Java Robot: Cuerpo del robot Cañón giratorio del robot Radar giratorio. Nuestros Robots Robots

IRCTeamBotIRCTeamBot vs.Teamyvs.TeamyTheThe riserise ofof thethe machinesmachines