domingo, 5 de julio de 2009

Robocode

Robocode es juego de programación a través del cual se puede aprender a programar en Java y aprender conceptos y algoritmos de inteligencia artificial en una forma muy divertida. El proyecto fue iniciado por Matthew A. Nelson y es de código abierto. Los requerimientos para instalar Robocode, se reducen únicamente a un JDK. Cada robot consta de tres partes, el cuerpo, el arma y el radar, el cuerpo es la estructura mas grande del robot y la cual le da movilidad, el arma es un pequeño cañón giratorio que le sirve para atacar a sus contrincantes y el radar para detectar donde están los otros robots.
Describo con mas detalle el funcionamiento y las reglas de Robocode en el siguiente video:


Para poder armar una buena estrategia, primero tuve que entender muy bien el funcionamiento de Robocode como simulador, sus características y limitaciones, así como el funcionamiento de los robots y las funciones que podemos utilizar para controlarlo y la forma en que responden, todo esto esta detalladamente en el mi primer articulo:

Como Robocode es una plataforma de simulación bastante realista, debemos tomar en cuenta que el cañón del arma se calienta con cada disparo, impidiéndonos disparar muy seguido, las balas viajan a una velocidad constante, por lo que debemos tener en cuenta el tiempo que tardan en llegar a su objetivo, perdemos cierta energía con cada disparo por lo que deberíamos acertarle al enemigo, etc.
Mi estrategia básicamente consiste en un movimiento randomico para esquivar las balas, reacción inmediata ante ataques, apuntamiento en base a patrones y un giro infinito del radar. Una descripcion mas completa de mi estrategia puede verse en el siguiente video

O leerse en el siguiente articulo