Академический Документы
Профессиональный Документы
Культура Документы
Tpicos
O que o Robocode? Conceitos Bsicos Anatomia do Rob A Batalha A Competio Como Instalar Mtodos Bsicos Eventos Criando um Rob Exemplo de Cdigo Iniciando uma Batalha Dvidas? Sites teis
2
O que o Robocode?
O que : Jogo Diverso e Aprendizado em Java Como tudo comeou: Em 2000 pela Alphaworks por Matthew A. Nelson Est presente em vrias universidades Garante timas competies
Conceitos Bsicos
Mtodo: Elemento que representa uma chamada para algum procedimento de um objeto Atributo: a caracterstica atribuda a um mtodo Evento: o resultado de uma ao
Anatomia do Rob
A Batalha
1 contra 1 Vrios contra vrios Rounds Score: Survival Score: 50 pontos por cada rob inimigo derrotado Last Survivor Bonus: 10 pontos por cada rob derrotado antes do seu Bullet Damage: 1 ponto por cada ponto de dano no inimigo Bullet Damage Bonus: 20% a mais de todo o dano causado no inimigo Ram Damage: 2 pontos por cada ponto de dano em uma coliso Ram Damage Bonus: 30% a mais de todo o dano causado por coliso Total Score: Soma de todos os pontos Rank: Definido pelo nmero total de pontos
6
Score
A Competio
Equipes de 1 a 3 pessoas 4 grupos de 3 equipes MicroBot (cdigo de at 750 bytes) Dia 22/05: 45 minutos para programao do rob Recolhimento dos robs Confrontos da fase de grupos Dia 25/05: 1 hora para readequao do rob Confrontos da fase de quartas de final Confrontos da fase semifinal Confronto da fase final Entrega da premiao no encerramento do I SICGRAPI
NAVI Ncleo de Aplicaes Visuais 8
A Competio
Grupos: Sorteio dos grupos Equipes batalham entre si Cada batalha ter apenas 1 round Os 2 primeiros de cada grupo avanam Quartas de final e Semifinal Os vencedores de cada batalha avanam Cada batalha ter 3 rounds Final A batalha ter 5 rounds
II. Fazer o download do arquivo robocode-1.7.3.6-setup.jar III. Abri-lo e definir o local de instalao IV. Seguir os demais passos
10
11
Mtodos bsicos
turnRight(double degree): Gira o rob em um certo nmero de graus para a direita turnLeft(double degree): Gira o rob em um certo nmero de graus para a esquerda turnGunRight(double degree): Gira a arma em um determinado nmero de graus para a direita turnGunLeft(double degree): Gira a arma em um determinado nmero de graus para a esquerda turnRadarRight(double degree): Gira o radar em um certo nmero de graus para a direita turnRadarLeft(double degree): Gira o radar em um certo nmero de graus para a esquerda.
NAVI Ncleo de Aplicaes Visuais 12
Mtodos bsicos
Coordenadas do Campo de Batalha: Canto inferior esquerdo: Coordenadas (0,0) Canto inferior direito: Coordenadas (largura,0) Canto superior esquerdo: Coordenadas (0,altura) Canto superior direito: Coordenadas (largura, altura) Obter as dimenses do campo de batalha: getBattleFieldWidth() : Obtm a largura (em pxels) do campo de batalha getBattleFieldHeight(): Obtm a altura (em pxels) do campo de batalha
13
Mtodos bsicos
Obter a atual coordenada do rob: getX(): Obtm a coordenada x do rob getY(): Obtm a coordenada y do rob Obter a posio (em graus) do rob, radar e arma: getHeading(): Obtm a direo do rob getGunHeading(): Obtm a direo da arma getRadarHeading(): Obtm a direo do radar Outros mtodos: getDistance(): Obtm a distncia do oponente getBearing(): Obtm o ngulo do oponente em relao a voc
NAVI Ncleo de Aplicaes Visuais 14
Eventos
Eventos mais utilizados: onScannedRobot(ScannedRobotEvent e): Este ser disparado quando o radar encontrar algum rob oponente
onHitByBullet(HitByBulletEvent e): Este ser disparado quando o rob for atingido por um tiro
onHitRobot(HitRobotEvent e): Este ser disparado quando o rob colidir com o oponente onHitWall(HitWallEvent e): Este ser disparado quando o rob colidir com a parede
NAVI Ncleo de Aplicaes Visuais 15
Criando um rob
Abra o Robocode V em Robot >> Editor Agora, em File >> New >> Robot Escolha um nome para o pacote, Exemplo: MeusRobos Escolha um nome para o seu rob, Exemplo: RoboLegal Digite as iniciais do rob Altere o cdigo sua maneira
16
Exemplo de cdigo
package meuPacote; import robocode.*; import java.awt.Color; public class Kakaroto extends Robot { public void run() { setColors(Color.orange,Color.blue,Color.yellow); while(true) { double i = (double) (40+Math.random()*400); double j = (double) (40+Math.random()*400); double k = (double) (1+Math.random()*180); ahead(i); back(j); turnRight(k); turnGunRight(360); setAdjustGunForRobotTurn(true); } } public void onScannedRobot(ScannedRobotEvent e) { fire(5); }
17
18
19
Dvidas?
20
Sites teis
http://robowiki.net/wiki/ http://www.slideshare.net/gscheibel/batalhas-com-robocode http://www.gsigma.ufsc.br/~popov/aulas/robocode/funcoes. html http://www.gsigma.ufsc.br/~popov/aulas/robocode/eventos. html
21
22