sexta-feira, 30 de agosto de 2013

Robocode - batalha de robôs

Hoje na  minha ITP 295(Java para robôs), o professor Edward Delean nos apresentou o Robocode. Robocode é um jogo de programação, onde o objetivo é construir robôs, modelo tanque de guerra, para lutar contra outros. Quando você instala, já vem alguns robôs de exemplo. Estamos utilizando a versão para programar em Java.

Para instalar basta entrar em http://robocode.sourceforge.net/download. Para o jogo rodar você precisa ter Java SE instalado: http://www.oracle.com/technetwork/java/javase/downloads/index.html.

A instalação é simples. É só seguir as instruções do próprio instalador.


Quando instalado, a primeira tela será essa:


Então você pode ir no menu Battle/New e terá a seguinte tela:


Nessa tela você terá um lista de pacotes(packages) e robôs(robots) daquele pacote selecionado .Então você adiciona os robôs que quiser na batalha, e clica no botão Start Battle. Quando você criar seus robôs e pacotes, eles serão listados nessa tela.

Aqui uma imagem da batalha:



Também temos o menu Robot/Editor. Isso irá abrir outra janela. Então na nova janela você seleciona o menu File/New/Robot. Isso irá criar uma classe com o nome que você definiu, e dentro do pacote que você criou. Essa classe por definição irá herdar da classe Robot. Sua classe virá com comandos pré-definidos, então você altera o comportamento do seu robô ao seu critério e lógica. Você sempre deve compilar sua classe para que o robô esteja disponível na listagem, ou para atualizar as modificações.

Meu robô se chama Robotec, e está no pacote fatec.robots. Veja imagem abaixo:


Abaixo segue todo o código que vem por padrão:

package fatec.robots;
import robocode.*;
//import java.awt.Color;

// API help : http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html

/**
 * Robotec - a robot by (your name here)
 */
public class Robotec extends Robot
{
/**
* run: Robotec's default behavior
*/
public void run() {
// Initialization of the robot should be put here

// After trying out your robot, try uncommenting the import at the top,
// and the next line:

// setColors(Color.red,Color.blue,Color.green); // body,gun,radar

// Robot main loop
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) {
// Replace the next line with any behavior you would like
fire(1);
}

/**
* onHitByBullet: What to do when you're hit by a bullet
*/
public void onHitByBullet(HitByBulletEvent e) {
// Replace the next line with any behavior you would like
back(10);
}
/**
* onHitWall: What to do when you hit a wall
*/
public void onHitWall(HitWallEvent e) {
// Replace the next line with any behavior you would like
back(20);
}
}


Você pode achar todas as classes, métodos, implementações no seguinte link: http://robocode.sourceforge.net/docs/robocode/

Espero que tenham gostado! Eu ainda não estou muito familiarizado com Robocodes, mas o pouco que utilizei achei bem interessante. Logo mais escrevo mais sobre isso!








Nenhum comentário:

Postar um comentário