drools + robocode

37
slide 1 Inteligência Artificial Eduardo Araújo Oliveira http://eduoliveira.com ROBOCODE

Transcript of drools + robocode

Page 1: drools + robocode

slide 1

Inteligência Artificial

Eduardo Araújo Oliveirahttp://eduoliveira.com

ROBOCODE

Page 2: drools + robocode

slide 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/

Page 3: drools + robocode

slide 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 Files\Java\jdk...

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

Page 4: drools + robocode

slide 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’.

Page 5: drools + robocode

slide 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.

Page 6: drools + robocode

slide 6

Robocode – Integração com o Eclipse

Page 7: drools + robocode

slide 7

Robocode – Integração com o Eclipse

Page 8: drools + robocode

slide 8

Robocode – Integração com o Eclipse

Page 9: drools + robocode

slide 9

Robocode – Integração com o Eclipse

Page 10: drools + robocode

slide 10

Robocode – Integração com o Eclipse

Page 11: drools + robocode

slide 11

Robocode – Integração com o Eclipse

Page 12: drools + robocode

slide 12

Robocode – Integração com o Eclipse

Page 13: drools + robocode

slide 13

Robocode – Integração com o Eclipse

Page 14: drools + robocode

slide 14

Robocode – Criando o robô no Eclipse

Page 15: drools + robocode

slide 15

Robocode – Criando o robo no Eclipse

Page 16: drools + robocode

slide 16

Robocode – Criando o robo no Eclipse

Page 17: drools + robocode

slide 17

Robocode – Criando o robo no Eclipse

Page 18: drools + robocode

slide 18

Robocode – Criando o robo no Eclipse

Page 19: drools + robocode

slide 19

Robocode + DroolsConfiguração

Page 20: drools + robocode

slide 20

Configurando o Eclipse para execução do Robocode com Drools

Page 21: drools + robocode

slide 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

Page 22: drools + robocode

slide 22

Configurando o Eclipse para execução do Robocode com Drools

Page 23: drools + robocode

slide 23

Robocode + DroolsIntegração (código)

Page 24: drools + robocode

slide 24

Integração do Robocode com o Drools

http://ccia.ei.uvigo.es/docencia/IA/0910/practicas/practica-2/

Page 25: drools + robocode

slide 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):

Page 26: drools + robocode

slide 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ô.

Page 27: drools + robocode

slide 27

Robocode + DroolsExemplos

Page 28: drools + robocode

slide 28

Exemplos de uso do Drools para o Robocode

Quando não escanear nenhum robô, gire radar para detectar robôs

Page 29: drools + robocode

slide 29

Exemplos de uso do Drools para o Robocode

Mover aleatoriamente quando parado

Page 30: drools + robocode

slide 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

Page 31: drools + robocode

slide 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

Page 32: drools + robocode

slide 32

Exemplos de uso do Drools para o Robocode

Quando escaneou novamente a vítima, vá em sua direção

Page 33: drools + robocode

slide 33

Exemplos de uso do Drools para o Robocode

Quando bater na parede, gire e retorne

Page 34: drools + robocode

slide 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

Page 35: drools + robocode

slide 35

Exemplos de uso do Drools para o Robocode

Quando bater em qualquer outro robô, contorne-o

Page 36: drools + robocode

slide 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

Page 37: drools + robocode

slide 37

Inteligência Artificial

Eduardo Araújo Oliveirahttp://eduoliveira.com

ROBOCODE