O documento descreve o Robocode, um ambiente de simulação de batalha entre robôs criados em Java. Ele explica como instalar e usar o Robocode, integrá-lo com Eclipse, e como criar robôs dentro do Eclipse. Também mostra como integrar o Robocode com o Drools para adicionar regras de decisão ao comportamento dos robôs.
2. Robocode
O Que é o Robocode?
– Ambiente de simulação de batalha entre robôs que
roda em qualquer plataforma que suporte Java
(agora também em .NET).
– A idéia básica consiste em utilizar as classes base
disponíveis pelo ambiente para criar o seu próprio
robô e colocá-lo em batalha com outros robôs
criados por outros desenvolvedores.
Site do robocode: http://robocode.sourceforge.net/
slide 2
3. Robocode - Instalação
Para rodar o Robocode, é necessário possuir Java 5.0 SE ou
mais recente na sua máquina. Além disso é necessário setar
duas variáveis do sistema antes de executar o Robocode, são
elas:
A variável JAVA HOME, que deve estar setada para o diretório
do Java na sua máquina.
Windows: JAVA HOME=C:Program FilesJavajdk...
UNIX, Linux, Mac OS: JAVA HOME=/usr/local/jdk...
E a variável PATH, que deve incluir o caminho para a pasta bin
do diretório de Java (JAVA HOME) que inclui o java.exe para
iniciar a JVM.
Windows: PATH=%PATH%;%JAVA HOME%bin
UNIX, Linux, Mac OS: PATH=${PATH}:${JAVA HOME}/bin
slide 3
4. Robocode - Instalação
O download da versão 1.7.3.0 está disponível em:
http://sourceforge.net/projects/robocode/files/robocode/
Depois de baixar, execute o .jar e este realizará a instalação.
Após a instalação, para iniciar o robocode utilize o
’robocode.bat’.
slide 4
5. Robocode – Adicionando novos robos
Depois de desenvolver seu robô, você deve exportá-lo como
um .jar, após isso o arquivo gerado deve ser colocado dentro
da pasta ’robots’, que fica localizada dentro do diretório onde o
robocode foi instalado.
slide 5
21. Configurando o Eclipse para execução do Robocode com Drools
-Xmx512M -Dsun.io.useCanonCaches=false -Ddebug=true -DNOSECURITY=true -Ddrools.dialect.java.compiler=JANINO
slide 21
24. Integração do Robocode com o Drools
http://ccia.ei.uvigo.es/docencia/IA/0910/practicas/practica-2/
slide 24
25. Integração do Robocode com o Drools
No robô do Robocode, todos os métodos “on...()” colocam diretamente na memória
de trabalho do Drools os objetos “...Event”, como pode ser visto na figura a seguir,
que mostra um trecho da classe “droolsIntegration.RuledBasedRobot” (enviada em
anexo a este documento):
slide 25
26. Integração do Robocode com o Drools
A lista de ações é lida e cada ação se relaciona diretamente com um método set do
Robocode.
Depois que os métodos set são
definidos, o método execute()
realiza a execução das ações do
robô.
slide 26
28. Exemplos de uso do Drools para o Robocode
Quando não escanear nenhum robô, gire radar para detectar robôs
slide 28
29. Exemplos de uso do Drools para o Robocode
Mover aleatoriamente quando parado
slide 29
30. Exemplos de uso do Drools para o Robocode
Quando não existir vítima ainda e o radar detectou um robô, adicione
este robô como vítima
slide 30
31. Exemplos de uso do Drools para o Robocode
Quando não existir vítima e chegar uma mensagem de inimigo detectado
por outro robô da mesma equipe, transforme o inimigo em vítima
slide 31
32. Exemplos de uso do Drools para o Robocode
Quando escaneou novamente a vítima, vá em sua direção
slide 32
33. Exemplos de uso do Drools para o Robocode
Quando bater na parede, gire e retorne
slide 33
34. Exemplos de uso do Drools para o Robocode
Quando bater num robô e este é o alvo, permaneça na mesma posição e
apenas ande para trás
slide 34
35. Exemplos de uso do Drools para o Robocode
Quando bater em qualquer outro robô, contorne-o
slide 35
36. Exemplos de uso do Drools para o Robocode
Quando receber uma mensagem de “Líder inimigo encontrado”, retire
qualquer vítima antes colocada e definia o líder como a vítima
slide 36