• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

Tutorial - Robocode em Netbeans

14 mensagens neste tópico

Já está o tutorial completo mas ainda podem ser limadas algumas arestas.

Podem já seguir este tutorial. Dêm feedback sobre os pequenos scripts no fim pois ainda não os testei.

Este tutorial destina-se a quem joga robocode e pretende um ambiente de desenvolvimento mais expedito do que o editor que vem com o robocode. A grande vantagem é o acesso a documentação em tempo real.

O IDE utilizado é o netbeans, este IDE é distribuido com o kit de desenvolvimento Java da sun. Quem tiver um ambiente de java diferente pode fazer download do netbeans no site do IDE: http://www.netbeans.org/index.html.

Depois de concluido este tutorial, se tudo tiver corrido conforme previsto, o netbenas mostrará a documentação do robcode desta forma:

fulldocpn9.png

1.Abrir o netbeans e criar um novo projecto:

File>newproject

2.Em categories escolher "general" e em projects escolher "java aplication" clicar em "next"

3.Escoher o nome para o projecto e a path. O nome do projecto será a pasta onde o vosso robot ficará, ainda não é o nome do robot, isso é mais a frente.

Nessa mesma janela escolher tambem a path, tem que ser a localização da pasta de robots da vossa instalação do robocode. Por exemplo D:/robocode/robots no windows ou /home/eu/robocode/robots em linux.

Ainda nessa janela, des-selecionar a checkbox que diz: "create main" class.

A outra checkbox pode ficar selecionada ou nao, é uma questão de preferencia. Se têm outro projecto a desenvolver no vosso IDE que usam com mais frequencia então é melhor não a selecionar.

4.clicar em "finish". O projecto aparecerá na arvore de projectos.

5.Agora que está o projecto criado, vamos dizer-lhe onde estao as bibliotecas do robocode. clicar com o botao direito em "libraries" e escolher "add jar/folder".

De seguida navega-se até à pasta do robocode, entra-se na subpasta "libs" e adicionam-se os tres jars que lá estão: robocode.jar roborumble.rar e codesize.rar. Estão as bibliotecas do robocode no projecto prontas a ser usadas. Ja podemos compilar através do netbeans, mas ainda falta adicionar a documentação.

6.Ir ao menu Tools>library manager. Uma vez aberto o gestor de bibliotecas vamos criar uma biblioteca nova para alojar a documentação. Clicar en "new library". Em library type escolher qualquer coisa como "robolib", o library typer pode ser mesmo "class library".

7.Esta a biblioteca criada, vamos adicionar-lhe a documentação. Ainda no library manager, clicamos na biblioteca que acabámos de criar ( deve estar listada à esquerda como um "class library") e, em cada aba clicamos em "add jar/folder" e adicionamos os seguintes valores nas respectivas abas.

classpath -> PATH_TO/robocode/libs

sources -> PATH_TO/robocode/libs

javadoc -> PATH_TO/robocode/javadoc

Substituir PATH_TO pela path para a vossa instalação do robocode.

8.Na arvore do projecto que criamos inicialmente, clicamos com o botao direito em "libraries" no menu que aparece escolhemos "new library".

addlibsoz0.png

Aparece uma lista de todas as bibliotecas, selecionamos a biblioteca que acabámos de criar e clicamos em "add library".

9.Está quase, vamos criar um robot! Clicar com o botao direito sobre o nó do nosso projecto e escolher new > empty java file. Na janela que aparecer insiram o nome do vosso robot e estão prontos para trabalhar nele!

10.Já podemos escrever robôs e compilÁ-los, no entanto a pasta de destino dos nossos ficheiros é ainda pouco prática e quebra a restrição de comprimento nos nomes dos robots: para um robot ser reconhecido pelo robocode a path pode conter no máximo 12 caracteres.

Para contornar este problema basta criar um pequenho script para copiar os ficheiros par a raíz do projecto. Utilizadores do windows podem criar um pequeno batchfile, quem usa linux, macos ou outro sistema operativo baseado em unix pode criar um pequeno shellscript.

Aqui vai o código necessário para por dentro desses scripts:

windows batch file:

copy -Y ./build/classes/packagename/*.class ./

salvar como .bat

shell script file:

cp ./build/classes/packagename/*.class ./

salvar como .sh

substituir "packagename" pelo nome do vosso package, é aconselhado usar o mesmo package name para todos os robots para que este script os possa copiar todos.

O script deve ser colocado na raíz do projecto criado pelo netbeans e corrido cada vez que o robot é compilado. Ter uma consola aberta só para correr este script não é má ideia, uma vez que o vamos ter que fazer com frequencia.

11. Só para finalizar fica uma nota a ter em atenção: apesar de estarmos a usar o netbeans não estamos a compilar um porjecto por completo. Esta tecnica usa as facilidade criadas pelo netbeans para o desenvolvimento de um projecto mas nunca chega a ser um projecto em si. como tal NUNCA devemos tentar compilar ou correr o projecto em si, se o fizermos receberemos uma mensagem de erro. Em vez disso cada robot deve ser compilado individualmente premindo a tecla F9 ou clicando com o botao direito do rato e escolhendo a opção "compile file".

De notar tambem que este projecto não tem main class. Um robot não é uma aplicação. A aplicação é o robocode em si, mas isso não compete ao jogador mexer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem... está o tutorial completo!

Já podem segui-lo!

Se encontrarem alguma gralha avisem, ou corrijam-na caso sejam moderadores.

Não sei se o primeiro screenshot é muito elucidativo. Se não, aguem com uma resolução maior pode tirar um melhor.

Se tiverem duvidas nalguma parte digam, se for preciso afixam-se mais screenshots.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tem ar de ser bem porreiro ;)

Porém eu vou experimentar o Eclipse primeiro porque já o tenho instalado neste momento :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O principio é o mesmo, não me lembro é como adicionar a documentação das bibliotecas...

Já agora, o codesize.jar é preciso? É que essa é a biblioteca/aplicação que se usa para ver o tamanho do código, usas em alguma coisa para programar os robots?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O codesize, eu tambem pensei nisso, mas optei por incluir tudo o que vinha com o robocode, caso alguem queira consulatar documentação de funcoes que estejam nesse jar. duvido que alguem faça isso, mas ainda assim acho que mais vale ficar assim até para evitar futuras confusões.

Eu nunca tentei o eclipse, mas o netbeans é a ferramenta de desenvolvimento mais cool alguma vez que utilizei. Quickfire, depois podes dar aí um feedback de utilização do eclipse, já considerei usa-lo para programar em php.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu uso o Eclipse para quase tudo :P

PHP, agora uns toques no RoR para me distrair, porém sei que é um IDE feito para Java, com plugins para outras linguagens.

Tem o contra de ser um pouco pesado, porque acho que corre em Java...

Quanto instalar dou um feedback.

Anyway, quem quiser instalar isto em Eclipse pode seguir este site:

http://robocode.sourceforge.net/help

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mmmm... eu já tinha visto esse tutorial, mas como não uso o eclipse não o segui. Agora vi-o com um pouco mais de atenção e até foi engraçado, pois grande parte desse tutorial é igual ao que escrevi para o netbeans. Importar jars, definir o javadoc, etc etc.

Está lá uma coisa que sou capaz de por no tutorial do netbeans: adicionar a classpath ao robocode, assim não é precisa aquela solução esquisita dos scripts. Tinha que haver solução para isso.

Pelo que vi parece-me mais ou menos a mesma coisa, aparece o javadoc assim que se prime ctrl+espaço. O netbeans tambem é pesado pois tambem é em java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deixo aqui uma reformulação do tutorial apresentado pelo pedrotuga. De notar que estas instruções foram feitas tendo em conta a versão 6 Milestone 9 do Netbeans e a versão 1.3.5 do Robocode, ambos inglês.

Estas intruções apresentam uma forma ligeiramente diferente de fazer o mesmo que foi apresentado no tutorial acima. Alguns passos, visto já terem sido apresentados e não serem significativos são omitidos. Em dúvida consultem o tutorial acima de forma a complementarem as instruções.

1. Dado que iremos usar a biblioteca do robocode várias vezes, podendo até ser usada para vários projectos diferentes e porque precisamos de adicionar a documentação, vamos adicionar a biblioteca ao conjunto de bibliotecas do IDE.

Em Tools->Libraries escolher New Library.... Escolher um nome para a biblioteca, qualquer nome serve, desde que não entre em conflito com bibliotecas existentes ou futuras. Neste caso o nome escolhido pretende reflectir a versão da biblioteca usada, Robocode1.3.5.

Vamos adicionar o jar que representa a nossa biblioteca no painel Classpath. Para isso basta escolher, Add Jar/Folder... e escolher o ficheiro robocode.jar dentro da pasta libs que se situa na pasta de instalação do robocode.

Para adicionar a documentação é necessário escolher a opção Add Zip/Folder... no separador Javadoc. A documentação está na pasta javadoc dentro da pasta de instalação do robocode, essa é a pasta a adicionar.

newlibraryyf0.png

A versão 1.3.5 do robocode não inclui o código fonte e, até ao momento, o mesmo não se encontra para download na página do projecto1. Caso já exista o ficheiro de código fonte, o mesmo poderá ser adicionado no separador Sources.

2.Após termos criado o projecto, basta adicionar a nova biblioteca ao projecto para que a possamos começar a usar. Botão direito no item Libraries do projecto, opção Add Library... e escolher a biblioteca criada anteriormente.

addlibraryib0.png

Resultado:

finalow6.png

3 Configurar o Robocode. Para não termos de copiar os ficheiros compilados do nosso projecto para dentro da pasta robots do robocode2, podemos configurar o robocode para conhecer a pasta onde os nossos robots compilados se encontram.

Abrindo o robocode, em Options->Preferences, no separador Development Options indicar o caminho para pasta do projecto\build\classes, mesmo que a pasta build\classes não existe.

robocodeprefsan0.png

Apartir deste momento podemos compilar o nosso projecto ou apenas um ficheiro do projecto.

1 Se entretanto não for disponibilizado um ficheiro com o código, poderão ser colocadas instruções de como obter o código ou até um link para o download do mesmo, tendo em atenção o facto de tal link não ser oficial.

2 Brevemente poderão ser disponibilizadas instruções de como alterar o build.xml para copiar automáticamente os ficheiros compilados para dentro da pasta robots do robocode, evitanto ter de configurar o robocode sempre que se mudar a localização das nossa classes ou pasta do projecto no IDE.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Yaps... está bem fixe, fiz o meu mais passo por passo ( quase clique a clique ) porque ainda andava a familiarizar-me com o netbeans.

Mas, ya, se no meu tutorial crio uma biblioteca no IDE, não é preciso estar a importar os jars. Mas isso tinha-me dado um problema qualquer por isso é que fiz daquela forma. Acho que nao estava a definir bem a classpath.

Essa ultima parte tambem já defini a path no robocode em vez de andar com os scripts marados.

Assim está muito mais como deve ser.

Já agora... classpath e sources... tens diferente de mim, tu tens a path seguida do nome do jar e eu tenho só a path, é gajo para ser isso que me estava a encravar.

Não defines nada na aba source?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não defino nada porque não tenho os sources para definir :(

Quando tiver vou lá colocar o zip com os sources.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma correcção. Posso estar a ver mal, já que não testei, mas os scripts apresentados copiam as classes sem a sua estrutura de packages correcta, isto é, o que é copiado é apenas o ficheiro compilado. Isso irá provocar erros dado que uma classe é identificada pelo seu nome completo, o que incluí o nome do package a que pertence.

Os scripts deveriam ser alterados para copiarem também os packages.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

yaps...

é verdade, basicamente, para robots de uma class a pasta onde o .class se encontra deve ter o mesmo nome que o nome do package.

Acho que mais vale por o teu tutorial no tópico de abertura em vez do meu, o meu foi feito na base de desenrasca e contem erros e incorrecções desse tipo.

É deixar como está mais um dia ou dois e depois fazer copy-paste para o tópico de abertura.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei-me pelo ponto 9. esta-me aqui a falhar qualquer coisa.

(estou em ubuntu  7.04)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei-me pelo ponto 9. esta-me aqui a falhar qualquer coisa.

(estou em ubuntu  7.04)

o ponto 9 é mesmo só criar um ficheiro. Realmente não está referido no tutorial que a classe ( o robot ) tem que ter o mesmo nome que o nome do ficheiro .java e que se tem que dar nome ao package.

Mas diz aí o que é que está a correr mal que isso resolve-se.

Ainda assim, aconselho o tutorial do knitter em vez do meu. O meu é feito com fita cola e muita improvisação. Brevemente vou  por o do knitter no tópico de abertura.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora