Skip links

RoboCode – Programe em Java de uma maneira divertida!

E se aprender Java fosse divertido? Robocode pode ser usado tanto para quem está iniciando na programação Java, ou quem deseja melhorar suas habilidades na linguagem.

O que é Robocode?

Segundo a própria página (https://robocode.sourceforge.io), “Robocode é um jogo de programação, em que o objetivo é desenvolver um tanque de batalha para batalhar contra outros tanques em Java ou .NET. As batalhas de robôs rodam em tempo real e direto na tela.” (tradução livre). O vídeo a seguir apresenta um pouco do robocode 🙂

Apesar de não ser especificamente para ensino de Java (ou .NET), ainda assim pode ser usado para esse fim. Conceitos de orientação a objetos podem ser demonstrados, seja através de herdar características/comportamentos de um robô base ou usando encapsulamento… O importante é que tudo isso possa ser ensinado de uma maneira que seja mais divertida do que o modo ‘tradicional’. Ainda não cheguei a fazer esse experimento no ensino de Java e POO, mas apresentei aos meus alunos para que praticassem um pouco, e que servisse de ‘gatilho’ para a disciplina de Inteligência Artificial (ah, pode ser adaptado para ensinar algumas técnicas de IA também).

Breve Explicação

Cada robô possui uma arma e um radar, que ficam acima do corpo do tanque. Os três podem se mover de forma conjunta, como também independentemente (basta ativar/desativar flags para isso).

Robôs possuem energia que é usada para atirar em outros robôs. Quando a energia chega à zero, o robô perde. Por isso, é importante controlar os disparos para não gastar toda energia. Cada vez que acerta um robô com seus disparo, o robô atingido perde energia, e o robô que disparou recupera parte da energia.

É importante ainda mencionar que existem vários eventos que são disparados e são importantes para sua estratégia. Dentre eles, evento de detectar um robô inimigo, tiro vindo em sua direção, acertar outro robô, e colisão.

Os robôs batalham em uma arena, durante várias rodadas. Quem conseguir mais pontos vence. Pontos são adquiridos a partir de dano e posição final ao fim de cada rodada. Para mais informações e tutoriais, acesse Iniciando em robocode.

Comentários Finais

Depois de passar um bom tempo sem postar nada, esse post serve para um reinício, mesmo que com um post breve, e apresentar uma ferramenta que pode lhe fazer perder algumas horas pra conseguir desenvolver um robô melhor que seus amigos nerds. Conheci o robocode em 2010/2011, quando fazíamos pequenas batalhas com colegas do trabalho. Este ano, na universidade, resolvi resgatá-lo para tentar incentivar meus alunos de IA a pensarem brevemente em estratégias e como algoritmos podiam ser usados para melhorar seus robôs. Ao final da disciplina, pretendo propor um breve desafio para que eles possam discutir em como as técnicas aprendidas ao longo da disciplina poderiam ser utilizadas para melhorar seus próprios robôs.

Caso venha a experimentar robocode, espero que divirta-se batalhando com seus amigos : )

Leave a comment

Name*

Website

Comment