Ir para o conteúdo

Robocode no NetBeans

Este tutorial pretende explicar como configurar o IDE NetBeans para que seja possível criar robôs para o Robocode, tirando partido de todas as funcionalidades que um IDE oferece. Se estiver à procura de como configurar o IDE Eclipse, pode encontrar um tutorial na ajuda oficial online.

Adicionar suporte para um IDE é algo simples de fazer no Rocode, na verdade, os criadores do projecto pensaram numa forma genérica de suporte para IDEs, no entanto, essa forma não nos permite usar todas as capacidades e benefícios de um IDE, não sendo assim, melhor que um simples editor de texto. Dessa forma o que vamos fazer é configurar o IDE NetBeans para reconhecer a biblioteca do Robocode.

Para o NetBeans, apenas bibliotecas globais podem possuir código-fonte e documentação associados. Uma biblioteca global não é mais que uma biblioteca normal, um ficheiro Jar, que está registado no IDE e que pode ser usada por qualquer projecto, sem que tenhamos de copiar manualmente os ficheiros para as pastas de cada projecto onde a queremos usar. É apenas necessário ter em atenção que ao registarmos uma biblioteca global, os ficheiros associados não podem mudar de local.

Mas como a pasta de instalação do Robocode só muda se desinstalarmos e voltarmos a instalar a aplicação, não haverá problema.

Adicionar a Biblioteca Robocode ao IDE

Vamos precisar de adicionar o ficheiro robocode.jar como uma biblioteca global. Para isso abra o gestor de bibliotecas do IDE Tools > Libraries.

Gestor de bibliotecas

Gestor de bibliotecas

Clique em New Library... e defina o nome como Robocode1.6, mantenha a categoria de Class Library, não é uma opção relevante e a sua alteração apenas afecta a categoria na qual a nossa biblioteca irá aparecer.

Cliqu OK e serão apresentadas as opções de configuração da biblioteca. No separador Classpath clique no botão Add Jar/Folder e escolha o robocode.jar que se encontra na sub-pasta libs, dentro da pasta de instalação do Robocode.

Nova biblioteca com o caminho para o ficheiro Jar definido

Nova biblioteca com o caminho para o ficheiro Jar definido

Adicione também o ficheiro de código-fonte, que terá de obter na página de download do Robocode, e a pasta da documentação, que é a sub-pasta chamada javadoc que está na pasta de instalação do Robocode. Adicione estes dois itens nas suas secções correctas, a secção Sources para o código-fonte e a secção Javadoc para a documentação.

Criar um Projecto

Crie um projecto novo, vazio e sem classe main. Depois adicione a biblioteca que acabamos de criar.

Menu de contexto

Menu de contexto

Seleccionar a nossa biblioteca global

Seleccionar a nossa biblioteca global

Clique em Add Library e crie uma classe simples para experimentar um robô, neste caso criei um chamado Titan cuja única função é existir :)

Se também adicionou a documentação, será possível vê-la dentro do IDE.

Javadoc no IDE

Javadoc no IDE

Dizer ao Robocode Onde Estão os Nossos Robôs

Existem duas formas diferentes de dizer ao Robocode onde estão os nossos robôs. A primeira é especificar a pasta build do nosso projeco, a segunda é dizer ao NetBeans para copiar os nossos robôs para dentro da pasta robots do Robocode. Qualquer uma das duas opções atinge o objectivo.

O Modo Robocode

Aceda ao painel de opções do Robocode, Options > Preferences, clique na secção Development Options e coloque o caminho completo para a pasta que contém os robôs compilados

Configuração do Robocode

O problema desta solução é que o Robocode apenas irá ver um robô, ou apenas os existentes no nosso projecto e seremos obrigados a reconfigurar esta opção sempre que criemos um projecto novo.

Deixar o NetBeans Tratar dos Robôs

A segunda sugestão é também dividida em duas escolhas. Esta opção permite ao NetBeans copias os robôs para uma pasta especificada após a compilação ou após a criação do ficheiro Jar.

Adicione o seguinte código ao ficheiro build.xml do seu projecto para que o NetBeans copie as classes compiladas para a pasta robots dentro da pasta de instalação do Robocode.

<target name="-post-compile">
    <copy todir="C:/Tools/Robocode/robots">
        <fileset dir="${build.dir}/classes"/>
    </copy>
</target>

Ou então coloque este código para que, em vez de copiar as classes, o NetBeans copie o ficheiro Jar do nosso projecto.

<target name="-post-jar">
    <copy file="${dist.jar}" todir="C:/Tools/Robocode/robots/"/>
</target>

As duas opções no ficheiro build.xml

As duas opções no ficheiro build.xml

Apenas pode colocar uma das opções, embora colocar as duas não impeça o código de funcionar, irá criar entradas duplicadas, uma vez que serão copiadas as classes e o Jar.

Note que tem de substituir o caminho na entrada todir, de forma a reflectir uma pasta do seu sistema.

A desvantagem desta abordagem é que um destes pedaços de código terá de ser sempre colocado em cada projecto novo que for criado.