Inteligência Artificial




       ROBOCODE




  Eduardo Araújo Oliveira
  http://eduoliveira.com



                            slide 1
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
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
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
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
Robocode – Integração com o Eclipse




                                      slide 6
Robocode – Integração com o Eclipse




                                      slide 7
Robocode – Integração com o Eclipse




                                      slide 8
Robocode – Integração com o Eclipse




                                      slide 9
Robocode – Integração com o Eclipse




                                      slide 10
Robocode – Integração com o Eclipse




                                      slide 11
Robocode – Integração com o Eclipse




                                      slide 12
Robocode – Integração com o Eclipse




                                      slide 13
Robocode – Criando o robô no Eclipse




                                       slide 14
Robocode – Criando o robo no Eclipse




                                       slide 15
Robocode – Criando o robo no Eclipse




                                       slide 16
Robocode – Criando o robo no Eclipse




                                       slide 17
Robocode – Criando o robo no Eclipse




                                       slide 18
Robocode + Drools
  Configuração




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




                                                              slide 20
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
Configurando o Eclipse para execução do Robocode com Drools




                                                              slide 22
Robocode + Drools
Integração (código)




                      slide 23
Integração do Robocode com o Drools




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




                                                                   slide 24
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
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
Robocode + Drools
    Exemplos




                    slide 27
Exemplos de uso do Drools para o Robocode



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




                                                                  slide 28
Exemplos de uso do Drools para o Robocode



Mover aleatoriamente quando parado




                                            slide 29
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
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
Exemplos de uso do Drools para o Robocode



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




                                                        slide 32
Exemplos de uso do Drools para o Robocode



Quando bater na parede, gire e retorne




                                            slide 33
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
Exemplos de uso do Drools para o Robocode



Quando bater em qualquer outro robô, contorne-o




                                                  slide 35
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
Inteligência Artificial




       ROBOCODE




  Eduardo Araújo Oliveira
  http://eduoliveira.com



                            slide 37

drools + robocode

  • 1.
    Inteligência Artificial ROBOCODE Eduardo Araújo Oliveira http://eduoliveira.com slide 1
  • 2.
    Robocode OQue é 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 – Adicionandonovos 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
  • 6.
    Robocode – Integraçãocom o Eclipse slide 6
  • 7.
    Robocode – Integraçãocom o Eclipse slide 7
  • 8.
    Robocode – Integraçãocom o Eclipse slide 8
  • 9.
    Robocode – Integraçãocom o Eclipse slide 9
  • 10.
    Robocode – Integraçãocom o Eclipse slide 10
  • 11.
    Robocode – Integraçãocom o Eclipse slide 11
  • 12.
    Robocode – Integraçãocom o Eclipse slide 12
  • 13.
    Robocode – Integraçãocom o Eclipse slide 13
  • 14.
    Robocode – Criandoo robô no Eclipse slide 14
  • 15.
    Robocode – Criandoo robo no Eclipse slide 15
  • 16.
    Robocode – Criandoo robo no Eclipse slide 16
  • 17.
    Robocode – Criandoo robo no Eclipse slide 17
  • 18.
    Robocode – Criandoo robo no Eclipse slide 18
  • 19.
    Robocode + Drools Configuração slide 19
  • 20.
    Configurando o Eclipsepara execução do Robocode com Drools slide 20
  • 21.
    Configurando o Eclipsepara execução do Robocode com Drools -Xmx512M -Dsun.io.useCanonCaches=false -Ddebug=true -DNOSECURITY=true -Ddrools.dialect.java.compiler=JANINO slide 21
  • 22.
    Configurando o Eclipsepara execução do Robocode com Drools slide 22
  • 23.
  • 24.
    Integração do Robocodecom o Drools http://ccia.ei.uvigo.es/docencia/IA/0910/practicas/practica-2/ slide 24
  • 25.
    Integração do Robocodecom 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 Robocodecom 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
  • 27.
    Robocode + Drools Exemplos slide 27
  • 28.
    Exemplos de usodo Drools para o Robocode Quando não escanear nenhum robô, gire radar para detectar robôs slide 28
  • 29.
    Exemplos de usodo Drools para o Robocode Mover aleatoriamente quando parado slide 29
  • 30.
    Exemplos de usodo 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 usodo 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 usodo Drools para o Robocode Quando escaneou novamente a vítima, vá em sua direção slide 32
  • 33.
    Exemplos de usodo Drools para o Robocode Quando bater na parede, gire e retorne slide 33
  • 34.
    Exemplos de usodo 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 usodo Drools para o Robocode Quando bater em qualquer outro robô, contorne-o slide 35
  • 36.
    Exemplos de usodo 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
  • 37.
    Inteligência Artificial ROBOCODE Eduardo Araújo Oliveira http://eduoliveira.com slide 37