Você está na página 1de 6

7/28/2017 Robocode

Robocode - Eventos
sensanto conhecer todos os eventos para ter a mente mais aberta quando for comear a
programar a inteligncia de seu rob.

Os eventos so chamados quando acontece algo especfico no decorrer do combate.


Alguns deles te enviam, por parmetro, dados do rob adversrio em questo para voc
trabalhar com esses valores dentro do evento. Exemplo: se voc digitar "e.getBearing()"
dentro de algum evento que contm na classe da varivel, enviada por parmetro, o
mtodo "getBearing()" , como os tipos ScannedRobotEvent e HitRobotEvent, retornar o
ngulo do rob inimigo em questo. Sendo que "e" o nome da varivel usada como
parmetro, que pode ser qualquer outro.

ndice

Run
onScannedRobot
onWin
onHitRobot
onHitWall
onHitByBullet
onBulletHit
onBulletMissed
onBulletHitBullet
onDeath
onRobotDeath
onSkippedTurn
onCustomEvent

Run

executado quando o round for iniciado.

Diferente do que muitos pensam, esse evento s ser chamado novamente quando iniciar
outro round. Por isso muito comum e recomendado usar um loop infinito dentro dele,
para que seu rob nunca fique parado quando no tiver sendo executado outro evento.

Exemplo

public void Run() {


do {
turnRadarLeft(360);
setAhead(200);
turnRight(300);
} while(true)
}

onScannedRobot

http://www.gsigma.ufsc.br/~popov/aulas/robocode/eventos.html 1/6
7/28/2017 Robocode

Executado quando o radar do seu rob encontra um adversrio.

um dos eventos mais importantes, pois a nica forma de saber a energia, a distncia,
o ngulo do seus inimigos para poder atira nele. A no ser se voc colidir com outro rob,
que j seria um outro evento.

Metodos da classe ScannedRobotEvent


Tipo
Comandos Descrio Retorno
Retorno
Retorna o nome do rob adversrio
getName() String
scaneado.
Retorna o ngulo do rob adversrio em
getBearing() double
relao ao seu rob
ngulo em radianos do rob adversrio
getBearingRadians() double
em relao ao seu.
Retorna a distacia do rob adversrio
getDistance() double
em relao ao seu rob.
getEnergy() double Retorna a energia do rob adversrio.
Retorna o ngulo em graus do
getHeading() double
adversrio em relao a tela.
Retorna o ngulo em radiaons do
getHeadingRadians() double
adversrio em relao a tela.
getVelocity() double Retorna a velocidade do rob scaneado.

Exemplo

public void onScannedRobot(ScannedRobotEvent Inimigo) {


double angulo = Inimigo.getBearing();
double distancia = Inimigo.getDistance();

if ( distancia < 200 ) {


turnGunRight(angulo);
fire(2);
}
}

Observao: No confunda "getEnergy()" com "e.getEnergy()", pois o primeiro a


energia de seu rob e o outro a energia do rob scaniado.

onWin

executado quando seu rob ganha o round.

J que aqui o round terminou, aproveite para programar uma rizadinha, uma dancinha,
malhando dos derrotados. Ou para ele parar de andar, evitando que bata na parede,
perdendo energia.

Exemplo

public void onWin(WinEvent e) {


turnRight(36000);
}

http://www.gsigma.ufsc.br/~popov/aulas/robocode/eventos.html 2/6
7/28/2017 Robocode

onHitRobot

executado quando seu rob bate em outro rob.

Aproveite que voc est bem perto do inimigo, vire o canho para ele e mande um tiro de
fora mxima, porque dificilmente errar.

Mtodos da classe HitRobotEvent


Tipo
Comandos Descrio Retorno
Retorno
Retorna o nome do rob adversrio
getName() String
colidido.
ngulo em graus do rob adversrio em
getBearing() double
relao ao seu rob
ngulo em radianos do rob adversrio
getBearingRadians() double
em relao ao seu rob.
getEnergy() double Retorna a energia do rob adversrio.
Retorna true se foi seu rob quem
isMyFault() boolean originou o evento, e false se foi o
adversrio que bateu em seu rob.

Exemplo

public void onHitRobot(HitRobotEvent INI) {


turnRight(INI.getBearing());
fire(3);
}

onHitWall

executado quando seu rob colide com a parede.

Quando seu rob bate na parede, perde energia. Ento o mnimo que voc deve fazer
mudar a direo dele, seno ele vai ficar de encontro parede at perder toda a sua
energia.

Mtodos da classeHitWallEvent
Tipo
Comandos Descrio Retorno
Retorno
ngulo em graus da parede batida em
getBearing() double
relao ao seu rob.
ngulo em radianos da parede batida
getBearingRadians() double
em relao ao seu rob.

Exemplo

public void onHitWall(HitWallEvent e) {


turnLeft(180);
}
http://www.gsigma.ufsc.br/~popov/aulas/robocode/eventos.html 3/6
7/28/2017 Robocode

onHitByBullet

executado quando seu rob leva um tiro.

Se a estratgia do seu rob ficar parado enquanto atira, bom utilizar esse evento para
sair do local de onde acabou de levar um tiro, para voc no se tornar um alvo fcil.

Mtodos da classe HitByBulletlEvent

Tipo
Comandos Descrio Retorno
Retorno
Retorna o nome do rob adversrio que
getName() String
te acertou um tiro.
Retorna o ngulo do rob adversrio em
getBearing() double
relao ao seu rob.
ngulo em radianos do rob adversrio
getBearingRadians() double
em relao ao seu rob.
Retorna o ngulo em graus do rob
getHeading() double
adversrio em relao a tela.
ngulo em radiaons do rob adversrio
getHeadingRadians() double
em relao a tela.
Retorna o Bullet (tiro) do rob adversrio
getBullet() Bullet
que atingiu seu rob.
getPower() double Retorna a fora do tiro.
getVelocity() double Retorna a velocidade do tiro.

Exemplo

public void onHitByBullet(HitByBulletEvent e) {


ahead(100);
}

onBulletHit

executado quando seu tiro acerta um adversrio.

Mtodos da classeBulletHitEvent

Tipo
Comandos Descrio Retorno
Retorno
Retorna o nome do rob adversrio que voc
getName() String
acertou um tiro.
Retorna o Bullet (dados do tiro) de seu rob que
getBullet() Bullet
atingiu o adversrio.
Retorna a energia do rob adversrio aps levar
getEnergy() double
o tiro.

Exemplo

http://www.gsigma.ufsc.br/~popov/aulas/robocode/eventos.html 4/6
7/28/2017 Robocode

public void onBulletHit(BulletHitEvent e) {


Acertos++;
}

Esse evento e os outros abaixo so usados em programaes mais avanadas e


complexas.

onBulletMissed

executado quando uma de suas balas colide com a parede(erra o tiro).

Mtodos da classeBulletMissedEvent
Tipo
Comandos Descrio Retorno
Retorno
Retorna o Bullet (dados do tiro), de seu rob,
getBullet() Bullet
que bateu na parede.

Exemplo

public void onBulletMissed(BulletMissedEvent e) {


ERROS++;
}

onBulletHitBullet

executado quando uma de suas balas colide com outra bala.

Mtodos da classeBulletHitBulletEvent

Tipo
Comandos Descrio Retorno
Retorno
getBullet() Bullet Retorna o Bullet (dados do tiro) de seu rob.
getHitBullet() Bullet Retorna o Bullet do rob adversrio.

public void onBulletHitBullet(BulletHitBulletEvent e) {


}

onDeath

executado se seu rob morrer.

Exemplo

public void onDeath(DeathEvent e) {


System.out.println(getName()+" morreu!");
System.out.println("Quantidade de inimigos ainda vivo: "+getOthers());
}

onRobotDeath

executado quando morre um adversrio.

Mtodos da classeRobotDeathEvent

http://www.gsigma.ufsc.br/~popov/aulas/robocode/eventos.html 5/6
7/28/2017 Robocode

Comandos Tipo Descrio Retorno


Retorno
getName() String Retorna o nome do rob que morreu.

Exemplo

public void onRobotDeath(RobotDeathEvent e) {


if (Nome == e.getName()) {
Nome = null;
}
}

onSkippedTurn

Se voc estiver um longo tempo sem ao.

Exemplo

public void onSkippedTurn(SkippedTurnEvent e) {


turnGunLeft(360);
}

onCustomEvent

Quando um uso de condio "addCustomEvent" satisfeita.

Tipo
Comandos Descrio Retorno
Retorno
getCondition() Condition Retorna a condio que gerou o evento.

Exemplo

public void onCustomEvent(CustomEvent e) {


}

[voltar]

http://www.gsigma.ufsc.br/~popov/aulas/robocode/eventos.html 6/6