Robocode en Java

robocode_logo_white

El proyecto Robocode data del inicio de la década de los 2000, creado por Mathew Nelson, y entonces sólo soportaba Java. Aunque con el tiempo se han ido añadiendo funcionalidades el objetivo sigue siendo el mismo: desarrollar un tanque para machacar a tus adversarios.

Hace no mucho tiempo incorpora la posibilidad de desarrollar los robots en la plataforma .NET aunque su uso no es tan extendido.

 

Hay ligas, como la RoboRumble@Home, la más veterana y respetada, rankings generales y por categorías, un “Hall of Fame” de los tanques más temidos y revolucionarios y una comunidad siempre activa y dispuesta al desafío donde la igualdad de oportunidades es la misma para todos.

 

Para equilibrar los combates los tanques se organizan en categorías al estilo del boxeo, por peso. Dicho peso se calcula en una “báscula” que mide el código efectivo de las clases: codesize.jar

De esta forma se dividen en:

Nanobots: cuyo código efectivo es menor de 250 bytes

Microbots: los que están entre 251 y 750 bytes

Minibots: los que están entre 751 y 1500 bytes

Megabots – por encima de 1501 bytes

 

 

Partes de un tanque y manejo

Los tanques se componen de tres partes: el cuerpo, el cañón y el radar.

robocode_robot

Partes de un tanque/robot de Robocode

El cañón rota sobre el eje central del tanque al igual que el radar y dicha rotación es controlada completamente desde programación.

 

Estas tres partes sólo podemos obtener información de dos de ellas:

El cuerpo: con getX() y getY() localizamos al tanque en el “ring” y con getHeading() obtenemos la dirección hacia donde esté mirando. Este último dato es importante ya que, para hacerlo avanzar, sólo disponemos de la función ahead(distancia_a_avanzar) y back(distancia_a_retroceder).

El radar: lo podremos girar con turnRadarRight(grados) o turnRadarLeft(grados), y esto es importante porque el radar es direccional y lo que no esté en su radio de acción no lo detectará.

 

Hay más comandos disponibles, incluso para fijar el radar al cañón o al cuerpo, para consultar tu estado y, por supuesto, para disparar.

Pero, quizás, los más importantes son los que se refieren al escaner del radar. Cada vez que nuestro radar detecta un robot a nuestro alcance se nos hace saber mediante el evento onScannedRobot, donde podremos detectar todo sobre el tanque que acabamos de avistar (excepto sus intenciones).

Otras entradas que pueden interesarte

0xhresult1994 Escrito por:

2 comentarios

  1. Sergio_46
    9 mayo, 2018
    Responder

    No me late

Responder a albert Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *