Professional Documents
Culture Documents
Introduccin
Robocode es un entorno de simulacin de guerras de robots, desarrollado por Alphaworks de IBM Robocode nos permite programar tanques de combate en Java para pelear en el campo de batalla contra tanques programados por otros jugadores. Existen dos modos de juego: batalla individual, en el que cada robot lucha contra todos los dems, y batalla en equipo, en el que un ejrcito de robots lucha por la victoria de modo colaborativo. En nuestro caso nos centraremos en la batalla individual.
Ejemplo de robot
package <nombre equipo>; import robocode.*; import java.awt.Color; public class TerminatorI extends Robot { public void run() { 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); } } public void onScannedRobot(ScannedRobotEvent e) { fire(1); } public void onHitByBullet(HitByBulletEvent e) { turnLeft(90 - e.getBearing()); } }
3.
se pueden utilizar:
public double getBearing() Devuelve el ngulo (en grados) del obstculo con el que se colisiona en relacin al ngulo que apunta el tanque/robot. Devuelve valores entre -180 a 180.
se pueden
public double getBearing() Devuelve el ngulo (en grados) del enemigo en relacin al ngulo que apunta tu tanque/robot. Devuelve valores entre -180 a 180. Por ejemplo, -90 grados (si mi tanque mira al norte, 0), sera lo mismo que decir que lo tengo a la izquierda.
Ejemplos
public void onScannedRobot(ScannedRobotEvent enemigo) { If (enemigo.getDistance() < 100) fire(3); else fire(1); } public void onHitWall(HitWallEvent e) { moveDirection *= -1; }
Ejemplo de robot
package <nombre equipo>; import robocode.*; import java.awt.Color; public class TerminatorI extends Robot { public void run() { 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); } } public void onScannedRobot(ScannedRobotEvent e) { fire(1); } public void onHitByBullet(HitByBulletEvent e) { turnLeft(90 - e.getBearing()); } }
Objetivos
Objetivo: se desea implementar un robot competitivo que sea capaz de derrotar a los adversarios, independientemente de la estrategia que implementen. Dudas:
Sera positivo implementar tcnicas de IA para alcanzar al enemigo? Sera interesante desarrollar mecanismos para evadir caonazos enemigos? Sera bueno basar nuestra estrategia en la cantidad de energa restante en cada momento?. Etc..
Instrucciones de instalacin
1. Descargar robocode desde:
http://et.evannai.inf.uc3m.es/docencia/cb/transparencias.html
Instrucciones de instalacin
4. Crear archivo .bat a partir de robocode.bat con el siguiente contenido:
a) Lneas de compilacin de nuestros robots (adaptar path java)
.\jikes-1.22\bin\jikes.exe -deprecation -g -Xstdout +T4 -classpath "C:\Archivos de programa\Java\jre1.5.0/lib/rt.jar";robocode.jar;robots ".\robots\ysa\RamboI.java" .\jikes-1.22\bin\jikes.exe -deprecation -g -Xstdout +T4 -classpath "C:\Archivos de programa\Java\jre1.5.0/lib/rt.jar";robocode.jar;robots ".\robots\ysa\TerminatorI.java"
b) Lnea que lanza al simulador Robocode minimizado, en el terreno de juego yago.battle y que guarda los resultados en el fichero resultadoCombate
java -Xmx512M -Dsun.io.useCanonCaches=false -jar ./battles/yago.battle -results resultadoCombate -minimize robocode.jar -battle
Instrucciones de instalacin
6. A jugar!!!!
Prctica III
1. Resolver el problema mediante algunas de las tcnicas vistas durante el curso. 2. Entregar una memoria breve comentando las tcnicas implementadas, las distintas pruebas realizadas los problemas encontrados y los resultados obtenidos. 3. El lenguaje de programacin ser libremente seleccionado por el/los alumnos.
Normas de la asignatura
Las prcticas permiten superar la asignatura sin necesidad de asistir al examen escrito. Para ello el alumno debe presentar en plazo y supere con xito (nota >= 5) TODAS las prcticas de la asignatura. Las prcticas se pueden realizar conjuntamente con un mximo de 2 alumnos por prctica. Cada alumno es responsable de la presentacin de sus prcticas. Una prctica presentada fuera de plazo quedar automticamente suspensa.
Normas de la asignatura
En caso de superar TODAS las prcticas de la asignatura, la nota final obtenida ser la nota media de las prcticas. Si el alumno decide renunciar a las prcticas y presentarse al examen la nota que prevalecer ser la nota del examen.