Introducción
Con el lema "Buir the best - destroy the rest" fue desarrollado el juego Open Source llamado Robocode; iniciado por Mathew Nelson y que hasta la fecha se mantiene vigente debido a las contribuciones de la comunidad y el auspicio de SourceForge. Este juego fue diseñado para ayudar a las personas a programar en el lenguaje Java y de paso divertirse con esta experiencia.
Básicamente consiste en escribir código Java en base a la API proporcionada de tal grado que mejor se defienda y sobreviva un tanque robot 'agente inteligente' del resto, obviando que las batallas se puedan dar en equipos, uno contra uno, o todos contra todos.
Entorno e instalación
Como requisitos:
- Tener instalado al menos la versión 5 de java que incluya JRE Y JDK; preferentemente el de SUN
- Tener correctamente configurada la variable del sistema JAVA_HOME
Resulta sencillo ir al sitio oficial del proyecto, descargarse el JAR de la ultima versión y ejecutarlo desde la línea de comandos con:
java -jar robocode-setup-x.y.z.jar
Anatomía del Robocode
Consta de tres partes:
- Cuerpo - Lleva el arma con el radar en la parte superior. El cuerpo es utilizado para mover el robot hacia adelante y hacia atrás, así como girar a la izquierda oa la derecha.
- Arma - Utilizado para disparar balas de energía. El cañón puede girar a la izquierda o a la derecha.
- Radar - Se utiliza para buscar otros robots cuando se mueven. El radar puede girar a la izquierda oa la derecha. El radar genera eventos onScannedRobot cuando se detectan los robots.
Otras de sus características:
- Tiene ciertas reglas físicas, como movimiento, apuntar, velocidad, que debes tomar en cuenta a la hora de atacar y defenderte
- Tiene sensores que debes programar para ver a tus objetivos
- Hay obstáculos contra los que tu tanque puede chocar.
Los agentes inteligentes continuamente ejecutan tres funciones: perciben las condiciones dinámicas del entorno, actúan para afectar condiciones en el entorno, y razonan para interpretar percepciones, resolver problemas, trazar inferencias, y determinar accionespor sí esto fuera poco la programación en estos puede ser genética.
Arquitectura del engine de simulación del Robocode
Técnicas, tips y trucos
Resumo algunas técnicas utiliazadas por los maestros del robocode:
- Evitar la pared factor - Utilizado para evitar que el bot quede atrapado entre las paredes o se desvíe mucho de una dirección
- Movimiento antigravedad - Consiste en algoritmos para definir algunos puntos en el mapa para así poder evitarlos y crear patrones de movimientos.
- Objetivos predictivos - Algoritmo que es utilizado para determinar las posiciones del enemigo con mayor precisión y poder realizar disparos más eficaces.
Creación del robot
Para programar un robot acceder al menú Robot>Editor> posteriormente en el editor de robot File>New>Robot. Especificar el nombre del robot (Clase java) y el paquete al que pertenece. Prácticamente hay que extender de una clase llamada Robot (No es más que un hilo) y generar aquellas porciones de código en base a las técnicas, habilidades y trucos existentes, más detalles en la API. Posteriormente guardar y compilar la clase desde Compiler>compile
package robot1;
import robocode.*;
//import java.awt.Color;
/**
* Exterminador - a robot by (Gabriel Mtz.)
*/
public class Exterminador extends Robot
{
/**
* run: Exterminador's default behavior
*/
public void run() {
// After trying out your robot, try uncommenting the import at the top,
// and the next line:
//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);
}
}
/**
* onScannedRobot: What to do when you see another robot
*/
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
/**
* onHitByBullet: What to do when you're hit by a bullet
*/
public void onHitByBullet(HitByBulletEvent e) {
turnLeft(90 - e.getBearing());
}
}
Test
0 comentarios:
Publicar un comentario